2014-01-11 20 views
1

在訪問中創建的導入子工作正常但添加了DBfailonerror時編譯錯誤從vb編輯器運行子子時遇到無效使用屬性。在訪問vb中添加DBfailonerror創建編譯錯誤無效使用屬性

任何建議重新:這將不勝感激。代碼如下:

Sub Importcl() 

'DATA DECLARATIONS 
Dim fso As New FileSystemObject 
Dim t As TextStream 
Dim strFilePath As String 
Dim Cnr As String 
Dim Cnri As String 
Dim Cnrii As String 
Dim Cnriii As String 
Dim Sqlstr As String 
Dim Db As DAO.Database 


'SET COUNTERS TO ZERO 
Cnr = 0 
Cnri = 0 
Cnrii = 0 
Cnriii = 0 

'Point to DB 
Set Db = CurrentDb() 

'SET TXT FILE PATH 
strFilePath = "C:\Users\Vlad\CSV import\EV WORK\Book1.txt" 


'ERROR HANLDER FOR TXT FILE PATH AND COUNTING OF TXT FILE LINE ITEMS 
If fso.FileExists(strFilePath) Then 
Set t = fso.OpenTextFile(strFilePath, ForReading, False) 
    Do While t.AtEndOfStream <> True 
     t.SkipLine 
     Cnr = Cnr + 1 
    Loop 
     t.Close 
Else: MsgBox ("Txt File not Found - Check File Path") 
Exit Sub 
End If 

'DISPLAY LINE RECORDS COUNTED IN TXT FILE TO BE ADDED TO TABLE 
Debug.Print Cntr; " Incl header" 
MsgBox (Cnr - 1 & " records to be added") 

'COUNT & DISPLAY CURRENT RECORD COUNT IN TARGET TABLE 
Cnri = DCount("[Case Date]", "All Caseload Data New") 


If MsgBox(Cnri & " -Current Records in table- All Caseload Data New - Continue 
with Import?", vbYesNo, "Import") = vbYes Then 
Db.Execute _ 
"INSERT INTO [All Caseload Data New] SELECT * FROM[Text;FMT=Delimited;HDR=Yes; 
DATABASE=C:\Users\Dev\CSV import\DEV WORK\].[Book1#txt];" 
dbFailOnError 
Db.TableDefs.Refresh 
Else: Exit Sub 

End If 

Cnrii = DCount("[Case Date]", "All Caseload Data New") 

Cnriii = Cnrii - Cnri 

MsgBox (Cnriii & " New records added to table All Caseload Data New") 


End Sub 

回答

1

有了這個代碼開始...

Dim db As DAO.database 
Dim strInsert As String 
strInsert = "INSERT INTO tblFoo (some_text) VALUES ('bar');" 
Set db = CurrentDb 

然後這2點Execute聲明..

db.Execute strInsert 
dbFailOnError ' triggers error 
db.Execute strInsert, dbFailOnError ' compiles without error 

在同一行包括dbFailOnErrorExecute。在單獨的行上放置dbFailOnError會觸發「無效使用屬性」編譯錯誤。