2010-10-21 20 views
0

由於某種原因,我似乎無法發現,這失敗了,我得到一個#Name?錯誤。當我嘗試這樣做時,我在表單中的另一個地方使用了幾乎相同的代碼;唯一的區別是「cbo」和我的txt等的名字。選擇一些內容並更改文本框的文本 - #name?錯誤

Private Sub cboVarenummer_AfterUpdate() 
    Dim LSQLVareNavn As String 
    LSQLVareNavn = "select Varenavn from VARENUMMER where VARENUMMER.Varenummer = '" & cboVarenummer & "'" 
    txtVarenavn.ControlSource = LSQLVareNavn 
End Sub 

任何人都可以發現我的錯誤嗎?

我希望代碼能做的事情是當我在cboVarenummer中使用Select時,TextBox txtVarenavn將其文本更改爲sql語句返回的內容。

+0

原始下拉框的行源是什麼?看起來您正在試圖查找數據並在其依賴於另一個字段中的數據時進行存儲。 Ypu可能能夠從組合框的列中獲取所需的數據。或者你也許應該在表單的底層RecordSource中加入表格。 – 2010-10-23 01:00:32

回答

0

我希望的代碼會做的是當我選擇在我的cboVarenummer東西時,我txtbox txtVarenavn改變其文本到什麼SQL語句返回

在這種情況下,我想你應該改變txtVarenavn的.Value屬性而不是其.ControlSource屬性。

而且使用DLookup()函數來檢索要在txtVarenavn.Value存儲

Private Sub cboVarenummer_AfterUpdate() 
    'Dim LSQLVareNavn As String ' 
    Dim strWhere As String 
    'LSQLVareNavn = "select Varenavn from VARENUMMER where VARENUMMER.Varenummer = '" & cboVarenummer & "'" ' 
    'txtVarenavn.ControlSource = LSQLVareNavn ' 
    strWhere = "Varenummer = '" & Me!cboVarenummer & "'" 
    Me!txtVarenavn = DLookup("Varenummer", "Varenummerf", strWhere) 
End Sub 

比較使用DLookup表達到以前的SELECT語句中的值。你可以看到字段名,表名和WHERE子句是如何對應的。將DLookup想象成一個簡單的SELECT ...它只返回一個值而不是記錄集...但這正是您在這裏所需要的。

我還將表格名稱更改爲Varenummerf,正如您在@Ben的評論中所列。作爲表格的VARENUMMER和作爲字段名稱的Varenummer可能不會混淆Access的數據庫引擎,但它讓我感到不安。 :-)

+0

我認爲不適合DLookup:P它的作品,我得到了我想要的結果..謝謝尋求幫助:P – 2010-10-23 11:27:03

0

你不想在SQL查詢中使用cboVarenummer.SelectedValue.Tostring(或cboVarenummer.SelectedItem.Tostring,取決於你如何填充組合框)?

+0

以及即時通訊不是origanl的創造者,但原始來源是這樣的:SELECT DISTINCTROW Varenummerf.Varenummer,Varenummerf.Varenavn,Varenummerf.Varenavn2 FROM Varenummerf;它不能找到SelectedItem和價值,只有一些東西叫SelItem ... – 2010-10-21 16:18:52

+0

我剛打mé這是BC我使用訪問2003年,我得到了價值和文字,但非他們似乎工作?我究竟做錯了什麼? – 2010-10-21 20:12:08

+0

你在哪裏陳述是錯誤的,你需要像這樣構建它:從VARENUMMER中選擇Varenavn,其中VARENUMMER.Varenummer ='「&cboVarenummer.SelectedItem&」'「。你現在的方式不會把這是假設你實際上使用vb.net – Ben 2010-10-22 08:01:29

相關問題