這是一個完整的新手問題,但我在網上找不到任何解決方案(至少沒有任何理解)。我想用一個文本框和一個按鈕來創建一個表單,點擊按鈕時應該將該值寫入文本框,在表中找到具有該ID的行並將屬性更改爲unavailable
。通常我會用一個簡單的SQL語句做到這一點:微軟Access:如何獲得按鈕點擊文本框的價值?
UPDATE table SET available='NO' WHERE id = *textbox.value*;
我應該寫的,而不是textbox.value使其作品是什麼?
這是一個完整的新手問題,但我在網上找不到任何解決方案(至少沒有任何理解)。我想用一個文本框和一個按鈕來創建一個表單,點擊按鈕時應該將該值寫入文本框,在表中找到具有該ID的行並將屬性更改爲unavailable
。通常我會用一個簡單的SQL語句做到這一點:微軟Access:如何獲得按鈕點擊文本框的價值?
UPDATE table SET available='NO' WHERE id = *textbox.value*;
我應該寫的,而不是textbox.value使其作品是什麼?
你可以參考一個開放的形式:
UPDATE table SET available='NO' WHERE id = Forms!MyForm!MyTextbox
假設形式是主要形式,而不是一個子窗體。您還可以在VBA中運行SQL。確保您不會通過表單和查詢或代碼同時更新記錄。
再評論
在這種情況下,問題是腐敗,這是我常常忘了提防。你會在這裏找到一篇好文章:http://www.granite.ab.ca/access/corruptmdbs.htm,包括反編譯。
從文本框中獲取的值是即使簡單:
如果我理解這個問題是正確的,這裏就是這種情況。
然後,你可以這樣做:
Dim SQL As String
'case 1: when the id is a string value
SQL = "UPDATE table SET available='NO' WHERE id = '" & Me.NameOfTheTextBox & "';"
'case 2: when the id is a numeric value
SQL = "UPDATE table SET available='NO' WHERE id = " & Me.NameOfTheTextBox & ";"
CurrentDB.Execute SQL
每當我運行查詢它會打開一個對話框,要求形式的價值Gestiune idInchiriere!。由於沒有錯別字,可能是什麼問題? 我有編程經驗,但沒有在Visual Basic中,我看過一些代碼,但我很難過...... – FloIancu
如果您使用的是MS Access 2010,則可以在查詢設計窗口中使用intellisense來獲取名稱Access具有表單和控件,否則,可以使用表達式嚮導。如果您完全確信名稱沒有問題,您是否可以從引用Forms!Gestiune!idInchiriere的開放表單運行消息框進行測試? – Fionnuala
此外,爲了重申Remou所說的話,請仔細檢查您的表單是否在運行查詢時打開。聽起來它可能沒有打開,或者你錯誤地拼寫了控件。 – Scotch