2011-01-07 76 views
1

我在MS Access數據庫中有一個表格,其中列出了訂單號和訂單號的訂單,每頁一個訂單。在表單底部有一個按鈕,打開另一個表單,爲訂單添加一個項目。MS Access - 用新記錄打開表格並插入先前表格的值

我想在MS Access中使用VB中的訂單號並自動將它放入新項目的詳細信息表單中的字段。我嘗試過不同的方式,但使用OpenArgs似乎被推薦。但詳細信息表單將無法打開,並且出現運行時錯誤。 這裏有問題的細節 - 建議將非常感激:

的形式和涉及領域有: 形成訂單是frmPedidoAvifiFind 形成訂單行的一個訂單是frmPedidoAvifi-dtlAdd(單獨形式增加細節,但不能查看現有的細節)。 訂單號碼的兩個表單上的字段是PedidoAvifiNo。這是兩個表中的數字字段,通過此字段通過一對多關係鏈接。

主要形式:按鈕,彈出詳細信息表單,代碼如下:

守則主要形式按鈕:

Sub AddDetails_Click() 
    Dim strDocName As String 

    strDocName = "frmPedidoAvifi-dtlAdd" 

    ' Open frmPedidoAvifi-dtl form in data entry mode and store PedidoAvifiNo in the form's OpenArgs property. 

    DoCmd.OpenForm strDocName, , , , acFormAdd, , [frmPedidoAvifiFind]![PedidoAvifiNo] 

End Sub 

詳細形式:在打開屬性

Private Sub Form_Open() 
If Me.OpenArgs <> vbNullString Then 
    Me.PedidoAvifiNo = Me.OpenArgs 
End If 

End Sub 

測試1:選擇主窗體上的訂單號碼以便記錄顯示。 按下按鈕添加訂單。 - 運行時錯誤'2465'找不到字段「|」提到。調試突出顯示了DoCmd行。

測試2: 變化的OpenForm行: DoCmd.OpenForm strDocName,,,,acFormAdd,Me.PedidoAvifiNo 結果: - 運行時錯誤2501 OpenForm操作被取消。

謝謝 邁克炮手 雷烏斯,西班牙

+2

子表單是處理MS Access中的這種用例的好方法。 – mwolfe02 2011-01-07 14:38:04

回答

1

你得到你拼錯控制​​的名字的意思是錯誤。

當您鍵入Me. intellisense會給你一個可用字段列表,看看你有什麼類似​​,或檢查屬性。切換一個字母並不通知可能非常容易。

至於第二部分,您應該使用Load事件,而不是frmPedidoAvifi-dtlAdd上的Open事件,因爲這些控件在Open事件中尚不可用。