2 qq 15272255 qq_15272255 于 2014.12.15 21:39 提问

vb6.0 Excel数据导入Access不能任意路径

vb6.0 Excel数据导入Access不能任意路径,必须要EXCEL文件和ACCESS数据库在同一个目录下才能成功导入,请大神帮忙看看怎么修改一下才能EXCEL在任意位置都可以导入。

----------------------------打开数据库找到数据表部分------------------

Private Sub Form_Load()
Dim cnn1 As New ADODB.Connection
Dim rstSchema As New ADODB.Recordset
Command1.Enabled = False
Command2.Enabled = False
dataBaseName = "data.mdb"

strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\data.mdb"
cnn1.Open strCnn
Set rstSchema = cnn1.OpenSchema(adSchemaTables)
If (Not rstSchema.EOF) Then
If rstSchema!TABLE_TYPE = "TABLE" Then
sjbm = rstSchema!TABLE_NAME
End If
End If
rstSchema.Close
cnn1.Close
Set rstSchema = Nothing
Set cnn1 = Nothing
End Sub

----------------------------打开数据库找到数据表部分------------------

---------------导入部分-------------

Private Sub Command2_Click()
If Text1.Text = "" Then
MsgBox "亲,请加载正确的Excel文件!", vbCritical, "文件未找到"
Exit Sub
End If
On Error GoTo ErrorHandler ' 打开错误处理程序
sql = "insert INTO " & sjbm & " IN '" & dataBaseName & "' select * from [data$]"
Conn.Execute (sql)
MsgBox "数据导入成功~~~╰( ̄▽ ̄)╮", vbInformation, "信息提示"
Command1.Enabled = False
Command2.Enabled = False
Exit Sub
ErrorHandler: ' 错误处理程序
MsgBox Err.Description
End Sub


导入不同文件夹的EXCEL文件会提示找不到数据库文件,我就没懂怎么回事,不知道是那里的地址错了。

只有EXCEL和数据库在同文件夹才能导入成功。请教~~~~~

3个回答

devmiao
devmiao   Ds   Rxr 2014.12.16 01:46
已采纳

Conn.Execute (sql)前面加上
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & tezt1.Text
Conn.Open strCnn
另外建议你用一个CommonDialog控件,这样方便用户通过打开对话框选取。

save4me
save4me   Ds   Rxr 2014.12.15 22:16

你的Text1.Text是不是就是选择的Excel的路径?但是你的代码里面没有看到将这个路径作为参数提供给其他部分。

Topc008
Topc008   Rxr 2014.12.15 22:30

你录段宏然后修改修改不就可以使用了吗?
Sub Macro1()
'
' Macro1 Macro
' 宏由 MicroSoft 录制,时间: 2014/12/15
'

'
With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=D:\db1.mdb;Mode=Share Deny Write;Extended Properties="""";J" _
, _
"et OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database" _
, _
" Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet " _
, _
"OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compa" _
, "ct Without Replica Repair=False;Jet OLEDB:SFP=False"), Destination:=Range( _
"A1"))
.CommandType = xlCmdTable
.CommandText = Array("tab1")
.Name = "db1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = "D:\db1.mdb"
.Refresh BackgroundQuery:=False
End With
End Sub

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!