我有一個訪問數據庫,通過ADODB連接到SQL數據庫。訪問表視圖的記錄集通過下面方法中的記錄集屬性進行設置。該方法從Form_Load函數調用它可查看的表單。表單通過主表單上的選項卡訪問。Access Recordset產生NAME?
不幸的是,記錄集在機器之間似乎沒有正確更新。在一臺機器上(Access 2010)它加載正常。在第二個(Access 2010)中,它只加載第一行作爲Name ?.有時我可以在第二臺機器上加載,如果我打開它自己的表單,然後打開選項卡。
任何幫助,將不勝感激。提前致謝!
Function LoadTblEmployeesADOtoForm()
Dim sqlStr As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim p As ADODB.Property
Const ConnStr = "PROVIDER=SQLOLEDB;Server=SERVER;Database=DB;User ID=ID;Password=PWD;"
Set cn = New ADODB.Connection
cn.Open ConnStr
Set rs = New ADODB.Recordset
With rs
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockPessimistic
'SELECT
sqlStr = "SELECT * FROM tblEmployees ORDER BY NetworkID"
Debug.Print sqlStr
.Source = sqlStr
Set .ActiveConnection = cn
.Properties("Preserve on Abort") = True
.Properties("Preserve on Commit") = True
End With
'cn.BeginTrans
rs.Open
Debug.Print rs.RecordCount
Dim temp As Integer
Set Form_frmManagetblEmployees.Recordset = rs
cn.Close
Set rs = Nothing
End Function
@ Remou這是我剛剛維護的遺留代碼。一旦用戶將他們的計算機更新到Access 2010,就會出現這個問題。我可以做一個鏈接表,但如果能夠快速修復先前存在的代碼,我想採用這種方式。 – steventnorris 2013-02-19 16:31:57
@Remou我試圖使用傳遞查詢並將其設置爲記錄源,現在它似乎加載在另一臺機器上,但不是第一臺。 – steventnorris 2013-02-19 19:29:09
@Remou在每種情況下都是相同的字段和列。唯一不匹配的是我能看到的是訪問表在頂部讀取LoggedDateTime,在SQL DB中讀取LoggedDate。但是,我似乎無法找到更改該列標題的位置,以查看是否存在問題。 – steventnorris 2013-02-19 19:32:23