2012-06-27 32 views
0

將記錄從一個表更新到位於不同文件夾中的另一個表。SQL/DBF將記錄從一個表更新到位於不同文件夾(* .dbf)的另一個表中

Dim connection As New ADODB.Connection 
Dim strConnection As String 
Dim pathPrincipal As String 
Dim pathUpdate As String 'External data base to update with TablePrincipal 
Dim strSQL As String 

pathPrincipal = "D:\DBFs" 
strConnection = "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" & PathPrincipal 

connection.Open strConnection 
If connection.State <> adStateOpen Then Exit Sub 

「正確:)

strSQL="UPDATE TablePrincipal#DBF" & " A INNER JOIN " & "TableUpdate#DBF" & " B ON A.ID = B.ID SET A.X=B.X, A.Y=B.Y" 
'Execute 
connection.Execute strSQL, n, adCmdText 

前面的代碼WORKS完美.....

但我的問題是當兩個DBF不在同一個文件夾,但我想THIS IS不做什麼

'No working for external DBF :'(:(
strSQL = "UPDATE TablePrincipal#DBF A INNER JOIN" & _ 
     " OPENROWSET('MSDASQL','Driver={Microsoft dBase Driver (*.dbf)}; DBQ=" & _ 
     pathUpdate & "; SourceType = DBF ','SELECT * FROM TableUpdate#DBF') B" & _ 
     " ON A.ID=B.ID SET A.X=B.X, A.Y=B.Y" 

任何人都可以幫助我..... PLEASEEEE !!!!幫助 我的英語:)

回答

0

如果數據駐留在不同的卷如C:,D :, X:,Y :(或任何映射),你幾乎沒有運氣沒有一些調整......

我不知道你的路徑設置,但我知道我已經做了以下用VFP(Visual FoxPro中)工作,並採用了最新的OLEDB提供...

當莊家對數據的連接文件,你應該能夠引用連接點的相對路徑。不過,如果你指的是數據路徑都是相同的邏輯捲上這隻會工作... 如

C:\SomePath\YourApplication\FirstDataFolder 
C:\SomePath\YourApplication\SecondDataFolder 

or even 

C:\SomeOtherPath\AnotherDataLocation 

如果上面的相似,你的環境是什麼,你可以創建一個連接到 C:\ SomePath \ YourApplication

然後,您的查詢應該能夠做到像

update FirstDataFolder\YourTable A 
    JOIN SecondDataFolder\YourOtherTable B 
    on a.field = b.field 
    set ... etc 
    where 

如果路徑是基於第三路徑樣本,你將不得不作出到C的連接:\ 通過它自己,然後完全符合現在「相對」路徑數據,如:

update SomePath\YourApplication\FirstDataFolder\YourTable A 
    JOIN SomeOtherPath\AnotherDataLocation\YourOtherTable B 
    on a.field = b.field 
    set ... etc 
    where 
0

你只更新使用完整的文件名(包括路徑)和SELECT查詢。

相關問題