qq_15272255
2014-12-15 13:39
采纳率: 100%
浏览 2.3k
已采纳

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 2014-12-15 17:46
    已采纳

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

    打赏 评论
  • save4me 2014-12-15 14:16

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

    打赏 评论
  • 一如既往哈 2014-12-15 14: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

    打赏 评论

相关推荐 更多相似问题