2013-01-04 59 views
0

這是一個完整的新手問題,但我在網上找不到任何解決方案(至少沒有任何理解)。我想用一個文本框和一個按鈕來創建一個表單,點擊按鈕時應該將該值寫入文本框,在表中找到具有該ID的行並將屬性更改爲unavailable。通常我會用一個簡單的SQL語句做到這一點:微軟Access:如何獲得按鈕點擊文本框的價值?

UPDATE table SET available='NO' WHERE id = *textbox.value*; 

我應該寫的,而不是textbox.value使其作品是什麼?

回答

1

你可以參考一個開放的形式:

UPDATE table SET available='NO' WHERE id = Forms!MyForm!MyTextbox 

假設形式是主要形式,而不是一個子窗體。您還可以在VBA中運行SQL。確保您不會通過表單和查詢或代碼同時更新記錄。

再評論

在這種情況下,問題是腐敗,這是我常常忘了提防。你會在這裏找到一篇好文章:http://www.granite.ab.ca/access/corruptmdbs.htm,包括反編譯。

+0

每當我運行查詢它會打開一個對話框,要求形式的價值Gestiune idInchiriere!。由於沒有錯別字,可能是什麼問題? 我有編程經驗,但沒有在Visual Basic中,我看過一些代碼,但我很難過...... – FloIancu

+0

如果您使用的是MS Access 2010,則可以在查詢設計窗口中使用intellisense來獲取名稱Access具有表單和控件,否則,可以使用表達式嚮導。如果您完全確信名稱沒有問題,您是否可以從引用Forms!Gestiune!idInchiriere的開放表單運行消息框進行測試? – Fionnuala

+0

此外,爲了重申Remou所說的話,請仔細檢查您的表單是否在運行查詢時打開。聽起來它可能沒有打開,或者你錯誤地拼寫了控件。 – Scotch

1

從文本框中獲取的值是即使簡單:

  • 從VBA執行查詢
  • 的VBA是在同一形式的文本框中

如果我理解這個問題是正確的,這裏就是這種情況。

然後,你可以這樣做:

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 
相關問題