Private Sub Command1_Click()
Dim item_subno, barcode, item_name As String
Dim sale_price As DoubleDim Con As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\wj.mdb;User ID=admin;Password=;Jet OLEDB:Database Password=123"   '连接ACCESS数据库Con.Open
Open App.Path & "\aa.txt" For Input As #1
Do While Not EOF(1)
Input #1, item_subno, barcode, item_name, sale_priceCon.Execute ("insert into spzlk(item_subno,barcode,item_name,sale_price) values( " & item_subno & "," & barcode & "," & item_name & " , " & sale_price & "  )")Loop
Close #1
ErrHandler:
' 用户按了“取消”按钮
Exit Sub
End Sub

解决方案 »

  1.   


    1 文本文件的格式是怎样的?2 字符型的字段,需要在其值前后加单引号:("insert into spzlk(item_subno,barcode,item_name,sale_price) values( " & item_subno & "," & barcode & ",'" & item_name & "' , " & sale_price & "  )")3 如果是标准的 Delimited Text File 格式,可以直接将其当作外部数据库访问,导入 Access 库。
      

  2.   

    of123你好,文本格式是用TAB分隔。前3个字段是字符型,sale_price是decimal
    "字符型的字段,需要在其值前后加单引",根据这个我改好后行了,但又提示"输入超出文件尾"
     Input #1, item_subno, barcode, item_name, sale_price
    第3个,因为数据是增量加进去,而且所用的电脑不安装ACCESS,所以不能用ACCESS导入了。
      

  3.   


    Dim strItem() As String, strLine As String
    '......Open App.Path & "\aa.txt" For Input As #1
    Do Until EOF(1)
    Line Input #1, strLine
    strItem = Split(strLine, vbTab)
    If Ubound(strItem) = 3 Then Con.Execute ("insert into spzlk(item_subno,barcode,item_name,sale_price) values('" & strItem(0) & "','" & strItem(1) & "','" & strItem(2) & "'," & strItem(3) & ")")
    Loop
    Close #1