Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1697|回复: 2

[已解决]跪求两段SQL代码...........

[复制链接]
发表于 2013-1-10 00:22 | 显示全部楼层 |阅读模式
我想通过vba代码,用附件中的原表.xls里的数据创建一个access数据库data.mdb,并为该数据库添加可读写的用户名admin,密码1234。
然后另外一段代码可以把“添加新数据.xls”的数据添加到该数据库。
请问各位大哥老师,这个可以通过vba代码实现吗?该怎么做啊
谢谢
最佳答案
2013-1-11 13:06
  1. Sub 创建()
  2.     Dim Sql As String, mdbNa As String, mdbStr As String
  3.     Dim xlsNa As String, xlsStr As String, Pw As String
  4.     Dim Ca As Object, Cnn As Object

  5.     Set Ca = CreateObject("adox.catalog")
  6.     Set Cnn = CreateObject("adodb.connection")
  7.     Pw = "1234"
  8.     mdbNa = ThisWorkbook.Path & "\data.mdb"
  9.     xlsNa = ThisWorkbook.Path & "\原表.xls"
  10.     mdbStr = "Provider=Microsoft.jet.OLEDB.4.0;Jet OLEDB:Database password=" & Pw & ";Data Source="
  11.     xlsStr = "[excel 8.0;database=" & xlsNa & "].[data$]"
  12.    
  13.     If Len(Dir(mdbNa)) Then '如果表已存在则删除
  14.         Kill mdbNa
  15.     End If
  16.    
  17.     Ca.Create mdbStr & mdbNa
  18.     Cnn.Open mdbStr & mdbNa
  19.     Sql = "select * into [data] from " & xlsStr
  20.     Cnn.Execute (Sql)
  21.    
  22.     Ca.ActiveConnection.Close
  23.     Cnn.Close
  24.     Set Cnn = Nothing
  25.     Set Ca = Nothing
  26. End Sub
复制代码
  1. Sub 添加()
  2.     Dim Sql As String, mdbNa As String, mdbStr As String
  3.     Dim xlsNa As String, xlsStr As String, Pw As String
  4.     Dim Cnn As Object
  5.    
  6.     Set Cnn = CreateObject("adodb.connection")
  7.     Pw = "1234"
  8.     mdbNa = ThisWorkbook.Path & "\data.mdb"
  9.     xlsNa = ThisWorkbook.Path & "\添加新数据.xls"
  10.     mdbStr = "Provider=Microsoft.jet.OLEDB.4.0;Jet OLEDB:Database password=" & Pw & ";Data Source="
  11.     xlsStr = "[excel 8.0;database=" & xlsNa & "].[Sheet1$]"
  12.    
  13.     Cnn.Open mdbStr & mdbNa
  14.     Sql = "insert into [data] select * from " & xlsStr
  15.     Cnn.Execute (Sql)
  16.    
  17.     Cnn.Close
  18.     Set Cnn = Nothing
  19. End Sub
复制代码

sql help.zip

7.77 KB, 下载次数: 6

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2013-1-10 10:47 | 显示全部楼层
回复

使用道具 举报

发表于 2013-1-11 13:06 | 显示全部楼层    本楼为最佳答案   
  1. Sub 创建()
  2.     Dim Sql As String, mdbNa As String, mdbStr As String
  3.     Dim xlsNa As String, xlsStr As String, Pw As String
  4.     Dim Ca As Object, Cnn As Object

  5.     Set Ca = CreateObject("adox.catalog")
  6.     Set Cnn = CreateObject("adodb.connection")
  7.     Pw = "1234"
  8.     mdbNa = ThisWorkbook.Path & "\data.mdb"
  9.     xlsNa = ThisWorkbook.Path & "\原表.xls"
  10.     mdbStr = "Provider=Microsoft.jet.OLEDB.4.0;Jet OLEDB:Database password=" & Pw & ";Data Source="
  11.     xlsStr = "[excel 8.0;database=" & xlsNa & "].[data$]"
  12.    
  13.     If Len(Dir(mdbNa)) Then '如果表已存在则删除
  14.         Kill mdbNa
  15.     End If
  16.    
  17.     Ca.Create mdbStr & mdbNa
  18.     Cnn.Open mdbStr & mdbNa
  19.     Sql = "select * into [data] from " & xlsStr
  20.     Cnn.Execute (Sql)
  21.    
  22.     Ca.ActiveConnection.Close
  23.     Cnn.Close
  24.     Set Cnn = Nothing
  25.     Set Ca = Nothing
  26. End Sub
复制代码
  1. Sub 添加()
  2.     Dim Sql As String, mdbNa As String, mdbStr As String
  3.     Dim xlsNa As String, xlsStr As String, Pw As String
  4.     Dim Cnn As Object
  5.    
  6.     Set Cnn = CreateObject("adodb.connection")
  7.     Pw = "1234"
  8.     mdbNa = ThisWorkbook.Path & "\data.mdb"
  9.     xlsNa = ThisWorkbook.Path & "\添加新数据.xls"
  10.     mdbStr = "Provider=Microsoft.jet.OLEDB.4.0;Jet OLEDB:Database password=" & Pw & ";Data Source="
  11.     xlsStr = "[excel 8.0;database=" & xlsNa & "].[Sheet1$]"
  12.    
  13.     Cnn.Open mdbStr & mdbNa
  14.     Sql = "insert into [data] select * from " & xlsStr
  15.     Cnn.Execute (Sql)
  16.    
  17.     Cnn.Close
  18.     Set Cnn = Nothing
  19. End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-20 14:40 , Processed in 0.238403 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表