form中有三個控制元件combo1,text1,text2,另有Access資料表guzhang,表中有ID,故障型別,故障征兆,故障原因四個欄位,使用ado控制元件,現已將其與資料庫相連 ,故障型別鏈接combo1,故障征兆鏈接text1 ,故障原因鏈接text2 。
需求是,將表中的故障型別欄位加入至combo1,當做combo1的下拉串列,選擇combo1中的故障型別內容時,自動將故障征兆,故障原因欄位中的內容加入到text1,text2控制元件中。三者一一對應,點擊combo第三行,text1 text2對應也是第三行內容。ado記錄源是1-adcmtext。
現代碼如下:
Private Sub Combo1_Click()
Text1.Text = ""
Text2.Text = ""
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\guzhang.mdb;Persist Security Info=False"
Adodc1.RecordSource = "select * from guolu Where 故障型別='" & Combo1.Text & "'"
Adodc1.Refresh
Text1.Text = Adodc1.Recordset.Fields("故障征兆")
Text2.Text = Adodc1.Recordset.Fields("故障原因")
Adodc1.Recordset.Close
End Sub
Private Sub Form_Load()
Combo1.Text = ""
Combo1.Clear
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\guzhang.mdb;Persist Security Info=False"
Adodc1.RecordSource = "select * from guolu"
Adodc1.Refresh
Do While Not Adodc1.Recordset.EOF
Combo1.AddItem Adodc1.Recordset.Fields("故障型別")
Adodc1.Recordset.MoveNext
Loop
Adodc1.Recordset.Close
End Sub
VB 運行出現后提示: field not update,bound property name:故障型別。
查看資料庫表中,故障型別清空
我自己真不知道問題出在哪兒,望哪位高手幫我運行一下,檢查問題出在哪里?是access還是VB。小的不勝感激
uj5u.com熱心網友回復:
Combo1 的 Click 事件里 第一行加上:if Combo1.Text = "" then exit sub
uj5u.com熱心網友回復:
之前有人告訴我是欄位名沒搞清楚,而我是個新手,一時真找不出問題所在,剛剛將代碼寫進去試了一次還是不行,提示錯誤還是: field not update,bound property name:故障型別。uj5u.com熱心網友回復:
Do While Not Adodc1.Recordset.EOFCombo1.AddItem Adodc1.Recordset.Fields("故障型別")
Adodc1.Recordset.MoveNext
Loop
問題應該出在這里,你資料庫里的"故障型別" 欄位全為空,所以這里取值取到了null。導致adodc內部錯誤。
個人建議不要用adodc,直接用ado物件進行資料處理。
當然,還有就是要把你資料庫里的“故障型別”欄位數值填上。
uj5u.com熱心網友回復:
這樣試試:Do While Not Adodc1.Recordset.EOF
Text1.Tag = Adodc1.Recordset.Fields("故障型別") & "" ‘如果資料是 Null,強制轉為空串
If Text1.Tag > "" Then Combo1.AddItem Text1.Tag
Adodc1.Recordset.MoveNext
Loop
uj5u.com熱心網友回復:
改一下那句查詢陳述句
select IIF ( 故障型別 IS NULL, ‘’, 故障型別) as 故障型別,故障征兆,故障原因 from guolu
BTW : select * 不是一個好習慣
uj5u.com熱心網友回復:
這是我所需求的界面 。
這是我的資料庫。Private Sub Combo1_Click()
Text1.Text = ""
Text2.Text = ""
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\guzhang.mdb;Persist Security Info=False"
Adodc1.RecordSource = "select * from guolu Where 故障型別='" & Combo1.Text & "'"
Adodc1.Refresh
Text1.Text = Adodc1.Recordset.Fields("故障征兆")
Text2.Text = Adodc1.Recordset.Fields("故障原因")
Adodc1.Recordset.Close
End Sub
Private Sub Form_Load()
Combo1.Text = ""
Combo1.Clear
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\guzhang.mdb;Persist Security Info=False"
Adodc1.RecordSource = "select * from guolu"
Adodc1.Refresh
Do While Not Adodc1.Recordset.EOF
Combo1.AddItem Adodc1.Recordset.Fields("故障型別")
Adodc1.Recordset.MoveNext
Loop
Adodc1.Recordset.Close
End Sub
這是我需要的代碼。
現在運行出現問題,不知道出錯點在哪里,希望您能幫幫我,找出出錯點,修改錯誤點。
uj5u.com熱心網友回復:
在我這里一切正常。uj5u.com熱心網友回復:
你把同時打開資料庫的 Access 關掉試試。uj5u.com熱心網友回復:
這是我運行出現的問題將記錄源設定為2-adcmtable時,運行出現的問題


修改記錄源設定為1-adcmtext時,運行出現的問題


查看資料庫“故障型別”就清空
uj5u.com熱心網友回復:
最大可能是問題出在你的資料庫檔案方面。因為我測驗你的代碼,是根據你的描述自建的資料庫表。uj5u.com熱心網友回復:
是我自己ado控制元件屬性出問題了,不應該設定ado屬性,只需將ado控制元件引入就行轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/46909.html
標籤:控件
下一篇:excle表中實作兩列資料關聯
