2015-12-21 72 views
0

我一直在尋找解決此錯誤的方法,但由於我沒有,我現在轉向您尋求幫助。我根本不是(有)經驗豐富的程序員,所以我希望這不是一個太基本的問題,可以在這裏提出,其他人也可以受益。MS Access 2007:運行時錯誤64224:對象'recordset2'的方法'收集'失敗

我試圖設置一個表格,我可以在這裏註冊,當我們的員工在給定的時間內借給某些東西時。即2015年12月21日至2016年10月10日員工借給筆記本電腦。該表單有兩個未綁定的文本框TxtFraDato和TxtTilDato(來自和去往)以及兩個未綁定的列表框,其中包含員工姓名和要貸款的'東西'。該列表框從表中獲取數據:

Medarbejder(員工):
- Navn:文本(主鍵)

Materiale:
- 編號:編號(主鍵)
- ModelType:文本

我知道擁有一張像我的Medarbejder表一樣的表並不完美,我擔心這可能會導致問題,但此錶鏈接到從bat創建的.txt文件文件,我一直無法弄清楚,如果有另一種方式來創建這樣的鏈接,那w生病給了我一個機會給表另一個主鍵。

最後,我有一個按鈕,在點擊要將該記錄保存到表 「Udlaan」:
編號:編號(主鍵)
FraDato:日期
TilDato:日期
Medarbejder:文本(查找列)
Materiale:數量(查找列)

然而,當我按一下按鈕,我得到的運行時錯誤64224:方法「收集」對象「recordset2」的失敗。

Private Sub btnSaveUdlaan_Click() 
    Dim db As Database 
    Dim rs As Recordset 
    Dim FraDato As Date 
    Dim TilDato As Date 
    Dim Medarbejder As String 
    Dim Model As Integer 

    Set db = CurrentDb 
    Set rs = db.OpenRecordset("Udlaan") 

    FraDato = Me.TxtFraDato.Value 
    TilDato = Me.TxtTilDato.Value 
    Medarbejder = Me.MAList.Column(0) 
    Model = Me.ModelList.Column(0) 

    AddUdlaan rs, FraDato, TilDato, Medarbejder, Model 

    rs.Close 
    db.Close 

End Sub 

的AddUdlaan:

Private Sub AddUdlaan(rs As Recordset, FraDato As Date, _ 
    TilDato As Date, Medarbejder As String, Model As Integer) 

    ' Adds a new record to a Recordset using the data passed 
    ' by the calling procedure. 

    With rs 
     .AddNew 
     !FraDato = FraDato 
     !TilDato = TilDato 
     **!Medarbejder** = Medarbejder ß The debugger is pointing to this field 
     !Materiale = Model 
     .Update 

    End With 

End Sub 

也許這是不是在所有的問題解決的正確方法,所以有這方面的幫助深表感謝。但事實是,我也很樂意從遇到這個錯誤中汲取一些東西。

+2

考慮用與其他表相關的外鍵替換查找字段。看他們[邪惡](http://access.mvps.org/access/lookupfields.htm)。 – Parfait

回答

0

這是因爲查找字段是記錄集的記錄集。只有Recordset2可以處理這些。

因此,你應該分配是Medarbejder(隱藏)Id,在僞代碼:

!Medarbejder = <Id of recordset Medarbejder> 

這是可以做到,但 - 因爲已經@Parfait提到的 - 幫自己一個忙,擺脫的查找字段。他們看起來多麼「聰明」,它們將會給你帶來的不僅僅是未來的麻煩。

作爲開始,變化表Medarbejder有一個自動編號Id作爲主鍵

+0

我很清楚,查詢字段可能不是「聰明」的聰明,但它會保持僱員的記錄永遠更新,用戶不必每天都手動更新,存在輸入錯誤的風險等等。如果沒有添加自動編號標識字段的可能性,那麼該員工的名稱就是外鍵。但我會將「Materiale」 - 查找改爲外鍵引用。感謝您的建議。 :) – kiro

+0

查找字段不能保持永遠更新的員工記錄,而無需用戶每天手動更新,_ ...實際上,查詢字段無法做任何其他您無法做的事情。這只是一個「超級用戶」功能,以取悅那些來自Excel的人,但它在每個方面都是死衚衕或陷阱。 – Gustav

相關問題