Dim aaa As String
    aaa = Dlg.FileName
    If aaa = "" Then
       label1.Caption = "你没有选择文件,或许已经提交了文件"
    Else
        On Error Resume Next
        Dim strConnect As String
        strConnect = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial Catalog=test;Data Source=ivy;PASSWORD=sunday"
        Dim Conn As New ADODB.Connection '用New,就直接实例化了一个对象
        'Dim rs As New ADODB.Recordset'rs没有用上
        '或者 Dim rs As ADODB.Recordset
        '     Set rs = New ADODB.Recordset
        Conn.CursorLocation = adUseClient '游标位置在客户端
        Conn.Open strConnect '打开数据库连接
        Conn.Execute ("BULK INSERT tbl From '" & aaa & "'with(FIELDTERMINATOR=';') ")
        label1.Caption = "文件已经写入了,你还想怎么样?"
        aaa = ""
    End If检测重复提交的.
但是还是重复提交了

解决方案 »

  1.   

    label1.Caption = "文件已经写入了,你还想怎么样?"
    aaa = ""你把aaa变量设置为空是什么意思
    你的程序中,只要用户在文件打开对话框中选择文件,你的程序就会执行批量插入啦
    如果你想检查打开的这个文件是否已经提交过,那就要在插入动作完成之后,清空这个文件注意是清空文件,不是 aaa=""
      

  2.   

    大概问题在Conn.Execute ("BULK INSERT tbl From '" & aaa & "'with(FIELDTERMINATOR=';') ")
    上,因为变量aaa一直是空字符串,这一句肯定要出错!
      

  3.   

    aaa = ""
    改成Dlg.FileName=""