2016-12-05 13 views
0

私のコンピュータからExcelファイルを選択してデータベースに挿入します。いくつかのコードは正常に動作していますが、キャンセルボタンをクリックするとキャンセルされず、開いたボタンと同じ作業を続けます。VBAボタンが機能していません

Sub GetDataFromClosedBook() 
'On Error GoTo myError 
Dim mydata As String 
'data location & range to copy 
mydata = "='C:\Users\IT.int08\Downloads\[close.xls]Sheet1'!$A1:$C1000" '<< change as required 
'link to worksheet 
With ThisWorkbook.Worksheets(1).Range("A1:C1000") '<< change as required 

.Formula = mydata 
'convert formula to text 
.Value = .Value 
Cells.Replace What:="'", Replacement:="", LookAt:=xlPart, SearchOrder:= _ 
     xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False 
Dim conn As New ADODB.Connection 
Dim Counter As String 
Counter = Cells.Item(2, 4) 

Dim IRow As Integer 
IRow = Cells.Item(2, 4) 
IRow = IRow + 1 
Dim rgno, taxpname As String 

     conn.Provider = "sqloledb" 
     'conn.Properties("Prompt") = adPromptAlways 
     conn.Open "Data Source=10.10.1.139;Initial Catalog=time;user id=sa;password=11" 

     Do Until .Cells(IRow, 1) = 0 Or Null 
      rgno = .Cells(IRow, 2) 
      taxpname = .Cells(IRow, 3) 
      Cells.Item(2, 4) = IRow 
     Dim Qu As String 
     If Len(rgno) >= 13 Then 

      Qu = "insert into dbo.rough (NTN_no,CNIC,TAXPAYERNAME) values ('" & "" & "', '" & rgno & "', '" & taxpname & "')" 
      conn.Execute (Qu) 
      ElseIf Len(rgno) < 13 Then 
      Dim asdf As String 
      asdf = "insert into dbo.rough (NTN_no,CNIC,TAXPAYERNAME) values ('" & rgno & "', '" & "" & "', '" & taxpname & "')" 
conn.Execute (asdf) 
End If 
IRow = IRow + 1 

DoEvents  
Loop  
'myError: 
'MsgBox ("record is missing") 
Sheet1.Cells.Clear 

End With 
End Sub 
+0

どのようなエラーが報告されましたか? – user1

+0

エラーは表示されませんが、プロンプトが開いてキャンセルボタンをクリックするとデータベースに挿入されます –

+0

あなたに表示されるスクリーンショットを表示できます – user1

答えて

0

プロムトはどこで発生しますか? 通常、「キャンセル」、スムースで何をすべきかをマシンに伝える必要があります。 like:

If [PROMPT] = vbNullString Then 
    Exit Sub 
End If 
+0

タイプの不一致エラーが表示されます –

+0

行がない8プロンプトが発生します –

+0

".Formula = mydata" ?? – snibbo

関連する問題