我有一個有邊界的表單,其屬性為 "資料輸入=是",它有多個文本框和一個附件型別的欄位。
我有一個 "保存 "按鈕,提示確認保存記錄。
在該表格中,我放置了一個標有 "包括培訓 "的復選框。
如果該復選框被選中,我想在同一個表中添加一個額外的記錄(除了通過系結表單添加的記錄),其資訊與在系結表單中插入的記錄完全相同,除了一個文本欄位將是不同的并在VBA代碼中定義。
我嘗試了CurrentDB.Execute SQL查詢,但它對附件欄位型別不起作用。
檔案中提出的解決方案不適用于這種情況,因為我想要獲取表單上有邊界的附件欄位中包含的附件,而不是從磁盤上的路徑獲取。
我認為類似以下的方法可能會奏效,但是當我測驗時,它會從系結的表單中保存記錄,但不會保存我希望通過 VBA 代碼添加的額外記錄,并且會以錯誤結束:
需要424個物件
。
VBA代碼:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctl As 控制元件
On Error GoTo Err_BeforeUpdate
If Me.Dirty Then
If MsgBox("Do you want to save the new record?"/span>, vbYesNo vbQuestion, _
"保存記錄") = vbNo Then
Me.Undo
MsgBox "更改已放棄。"。
Else。
如果 Me.checkbox.Value = True Then
Set rsTable = db.OpenRecordset("Table"/span>)
With rsTable
.AddNew
!TextField1 = Me.TextField1.Value
!"TextField2 = "My Own Text Field"。
!AttachmentField = Me.AttachmentField.Value
.更新
.書簽 = .LastModified
End With!
MsgBox "記錄被正確保存。"
End If
End If
結束 若
End Sub
非常感謝您的幫助
。編輯:
因此,這顯然不是保存新記錄的正確方法,但我需要在同一時間(或緊隨其后)保存系結表單上的記錄。我不希望用戶填寫另一個系結的表單。
。這樣做的原因是,我所輸入的是語言認證記錄,而有些認證的范圍更廣,包括兩個級別。 因此,復選框發出信號:"你想把以前的級別也包括在內嗎?",如果它被選中,那么上傳的PDF證書將對1級和2級都有效。 除了記錄的級別名稱外,所有資訊都將是相同的。
我需要這兩個單獨的記錄,因為我也可以單獨擁有它們,以后我將根據這些單獨的語言級別來檢查條件。
uj5u.com熱心網友回復:
為了使用一個附件欄位,你需要使用特殊的方法LoadFromFile來將附件放入資料庫,SaveFromFile來將附件從資料庫中取回。看起來你試圖將一個字串分配給一個附件欄位。
我沒有看到db是在哪里定義的。你是指 CurrentDb 嗎?
我看到的另一個問題是,你在With塊中使用bang符號。Bang符號是一個字串查詢。如果你想通過名字來呼叫這個專案,你可以這樣做:
With CurrentDb.OpenRecordset("Table")
.AddNew
.Fields.Item("TextField1").Value = Me.TextField1.Value
.Fields.Item("TextField2").Value = "My Own Text Field"。
.Fields.Item("AttachmentField").LoadFromFile Me.AttachmentField.FileName
.更新
.書簽 = .最后修改
.關閉
結束 與
這些專案的名稱必須是正確的。
uj5u.com熱心網友回復:
我最終通過創建一個單獨的邊界來解決這個問題,如果復選框被選中,當我在原始邊界表單上點擊 "保存 "時,該表單就會彈出。在那里,用戶可以選擇是否上傳與原始系結表單相同的檔案,或上傳一個不同的檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/314460.html
標籤:
上一篇:C#讀/編輯accdb宏
