Private Sub Command1_Click()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strsql As String
strsql = "select 索書號 as 索書號,子序號 as 子序號,書名 as 書名,作者 as 作者,當前狀態as 當前狀態,被借還次數 as 被借還次數,出版日期 as 出版日期, 出版社 as 出版社,借閱時長 as 借閱時長 from 借書 where "
Select Case True
Case Option1.Value
strsql = strsql & "書名"
Case Option2.Value
strsql = strsql & "索書號"
Case Option3.Value
strsql = strsql & "作者"
End Select
strsql = strsql & "like '%" & Trim(txtData) & "%'"
On Error GoTo errorhandle
conn.Open "BOOK"
rs.Open strsql, conn
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
errorhandle:
If Err.Description <> "" Then
mdgbox Err.Description
Exit Sub
End If
End Sub

求問是為什么,,好急
uj5u.com熱心網友回復:
訊息提示是編譯錯誤啊!會指出是哪一行錯誤的。下面幫你改正了
errorhandle:
If Err.Description <> "" Then
MsgBox Err.Description '<-
Exit Sub
End If
uj5u.com熱心網友回復:
strsql = strsql & "like '%" & Trim(txtData) & "%'"like前面加空格
strsql = strsql & " like '%" & Trim(txtData) & "%'"
uj5u.com熱心網友回復:
俺就來吐槽:as的前面和后面名字一樣還as個啥?
中文欄位名將來等著debug吧.
Select Case True 這樣的寫法你真的理解嗎?
以及
Case Option1.Value
strsql = strsql & "書名"
Case Option2.Value
strsql = strsql & "索書號"
Case Option3.Value
strsql = strsql & "作者"
這樣硬編碼真的好嗎?
出錯資訊說得明明白白, 就是你用到了未定義的函式或程序(也可能是變數名), 你還是先把on error這種注釋掉吧.
最后, 把聯接資料庫, 查詢記錄這些事統統都放在一個小小的按鈕事件中是否妥當?
等你資料量大一點, 再遇到個有事沒事喜歡多點幾下的, 你這程式不得跑死?
哦, 新手...沒事, 慢慢寫下去, 上面的坑你會踩個遍的!
uj5u.com熱心網友回復:
哦,看來是新手,我也說說一、strsql = "select 索書號 as 索書號,子序號 as 子序號,書名 as 書名,作者 as 作者,當前狀態as 當前狀態,被借還次數 as 被借還次數,出版日期 as 出版日期, 出版社 as 出版社,借閱時長 as 借閱時長 from 借書 where "
這個字串讀取離奇,as前后一樣,不知道什么意圖,不如這樣一目了然:
strsql = "select * from 借書 where " 既簡單又明了,無非可以檢索所有欄位而已
二、Select Case True '這個True是VB的關鍵字不能作為變數使用!!
Case Option1.Value '|呵呵,有這樣..........
strsql = strsql & "書名"
Case Option2.Value
strsql = strsql & "索書號"
Case Option3.Value
strsql = strsql & "作者"
End Select
將 Option1控制元件設定為陣列控制元件, Option1(0)、 Option1(1)、Option1(2)
Dim XX As Ineger
XX = Option1(Index).Index
Select Case XX
Case 0
strsql = strsql & "書名"
Case 1
strsql = strsql & "索書號"
Case 2
strsql = strsql & "作者"
End Select 這樣應該沒有問題了
三、conn.Open "BOOK" conn是需要連接資料庫的,不明白你這個"BOOK" 字串是什么
應該是 conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\aaa.mdb;Persist Security Info=False"
上面是連接Access資料庫的連接陳述句,連接的資料庫是 aaa.mdb 資料庫
四、strsql = strsql & "like '%" & Trim(txtData) & "%'"
應該是 strsql = strsql & " like '%" & Trim(txtData.Text) & "%'" 注意字串必須的空格,新手養成(控制元件.屬性)這樣的書寫習慣
uj5u.com熱心網友回復:
額。。感謝前輩指點,收益頗豐,我的代碼確實問題好多。算是剛開始寫程式的新手吧,老師要求一個禮拜內做一個簡單的資料庫vb連接,忙亂之中就照搬課本胡亂寫代碼了,還有好多東西沒入門哈哈。
uj5u.com熱心網友回復:
謝謝謝謝謝謝您的指點,改正了很多錯誤,但是不知道為什么(可能因為我實在太蠢orz),按照您說的改了以后還是有問題
Private Sub Command1_Click()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strsql As String
strsql = "select * from 借書 where "
Dim t As Integer
t = Option1(Index).Index
Select Case t
Case 0
strsql = strsql & "書名"
Case 1
strsql = strsql & "索書號"
Case 2
strsql = strsql & "作者"
End Select
strsql = strsql & " like '%" & Trim(txtData) & "%'"
On Error GoTo errorhandle
conn.Open "BOOK"
rs.Open strsql, conn
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
errorhandle:
If Err.Description <> "" Then
MsgBox Err.Description '<-
Exit Sub
End If
End Sub

哪里出現差錯了?

ps BOOK好像是我給odbc命名的一個連接

這樣子連接應該成功了吧?(按照網上的教程做的也不知道對不對hhhh)
uj5u.com熱心網友回復:
謝謝您
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/65415.html
下一篇:求助tableadapter問題
