全部代碼如下,點擊運行打開這個表單,就顯示型別不匹配,第三段開頭Sub InitLX()標黃,第三段第六行的.AddItem變藍
Option Explicit
Public sqlStr As String
Private Sub Form_Load()
InitLX
End Sub
Sub InitLX()
sqlStr = "select 型別 from Type order by 型別"
Adodc1.RecordSource = sqlStr
Adodc1.Refresh
While Not Adodc1.Recordset.EOF
cboLX.AddItem Adodc1.Recordset
Adodc1.Recordset.MoveNext
Wend
End Sub
Private Sub cmdAdd_Click()
Dim i As Integer
Dim MAX As Integer
Dim lxbh As Integer
For i = 0 To 4
If txtHeritagei.Text = "" Then
MsgBox "請將資訊填寫完整", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
Next i
sqlStr = "select 型別編號 from Type where" _
& "[型別]='" & Trim(cboLX.Text) _
& "'AND" & "[所在地]='" & Trim(txtHeritage2.Text) _
& "'AND" & "[列入時間]='" & Trim(txtHeritage3.Text) & ""
Adodc1.RecordSource = sqlStr
Adodc1.Refresh
If Not Adodc1.Recordset.EOF Then
lxbh = Adodc1.Recordset.Fields("型別編號")
Else
MsgBox "沒有找到型別相關資訊,請先添加型別資訊,然后添加遺產資訊 !", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
sqlStr = "select max(遺產編號) from Heritage"
Adodc1.RecordSource = sqlStr
Adodc1.Refresh
MAX = Adodc1.Recordest.Fields(0)
'添加新記錄
sqlStr = "select*from Heritage"
Adodc1.RecordSource = sqlStr
Adodc1.Refresh
With Adodc1.Recordset
.AddNew
.Fields("遺產編號") = MAX + 1
.Fields("遺產名稱") = txtHeritage1.Text
.Fields("型別編號") = lxbh
.Fields("所在地") = txtHeritage2.Text
.Fields("列入時間") = txtHeritage3.Text
.Fields("簡介") = txtHeritage4.Text
.Update
End With
MsgBox "遺產資訊添加完成!", vbOKOnly + vbExclamation, "警告"
clearTextBox
InitLX
End Sub
Sub clearTextBox()
txtHeritage1 = ""
txtHeritage2 = ""
txtHeritage3 = ""
txtHeritage4 = ""
End Sub
Private Sub cmdCancel_Click()
Unload Me
End Sub
uj5u.com熱心網友回復:
注釋掉所有On Error Resume Next陳述句,在VB6 IDE中運行,出錯后點擊除錯,游標會停在出錯的那條陳述句處,
或者
事先在懷疑可能有邏輯錯誤的陳述句處設定斷點,運行經過斷點時中斷,
此時可以在立即視窗中使用
?變數名
或
?函式名(函式引數)
或
程序名(引數)
輔助除錯。
TypeName 函式
回傳一個 String,提供有關變數的資訊。
語法
TypeName(varname)
必要的 varname 引數是一個 Variant,它包含用戶定義型別變數之外的任何變數。
說明
TypeName 所回傳的字串可以是下面列舉的任何一個字串:
回傳字串 變數
物件型別 型別為 objecttype 的物件
Byte 位值
Integer 整數
Long 長整數
Single 單精度浮點數
Double 雙精度浮點數
Currency 貨幣
Decimal 十進制值
Date 日期
String 字串
布爾 布林值
Error 錯誤值
Empty 未初始化
Null 無效資料
Object 物件
Unknown 型別未知的物件
Nothing 不再參考物件的物件變數
如果 varname 是一個陣列,則回傳的字串可以是任何一個后面添加了空括號的可能的回傳字串(或 Variant)。例如,如果 varname 是一個整數陣列,則 TypeName 回傳 "Integer()"。
uj5u.com熱心網友回復:
謝謝,之前是我理解錯了陣列的意思,修改之后部分代碼如下,運行顯示
字串1后的引號不完整,標黃第十六行的Adodc1.Refresh,請問這又是怎么回事呢,感謝
Private Sub cmdAdd_Click()
Dim i As Integer
Dim MAX As Integer
Dim lxbh As Integer
For i = 0 To 3
If txtHeritage(i).Text = "" Then
MsgBox "請將資訊填寫完整", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
Next i
sqlStr = "select 型別編號 from Type where" _
& "[型別]='" & Trim(cboLX.Text) _
& "'AND" & "[所在地]='" & Trim(txtHeritage(1).Text) _
& "'AND" & "[列入時間]='" & Trim(txtHeritage(2).Text) & ""
Adodc1.RecordSource = sqlStr
Adodc1.Refresh
If Not Adodc1.Recordset.EOF Then
lxbh = Adodc1.Recordset.Fields("型別編號")
Else
MsgBox "沒有找到型別相關資訊,請先添加型別資訊,然后添加遺產資訊 !", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
sqlStr = "select max(遺產編號) from Heritage"
Adodc1.RecordSource = sqlStr
Adodc1.Refresh
MAX = Adodc1.Recordset.Fields(0)
'添加新記錄
sqlStr = "select*from Heritage"
Adodc1.RecordSource = sqlStr
Adodc1.Refresh
With Adodc1.Recordset
.AddNew
.Fields("遺產編號") = MAX + 1
.Fields("遺產名稱") = txtHeritage(0).Text
.Fields("型別編號") = lxbh
.Fields("所在地") = txtHeritage(1).Text
.Fields("列入時間") = txtHeritage(2).Text
.Fields("簡介") = txtHeritage(3).Text
.Update
End With
MsgBox "遺產資訊添加完成!", vbOKOnly + vbExclamation, "警告"
clearTextBox
InitLX
End Sub
uj5u.com熱心網友回復:
你的cboLX是“下拉串列框”(或者組合框)控制元件吧?它的 AddItem 只能是文本內容(其它某些型別的資料可以“自動轉換成文本”),
而 Adodc1.Recordset 是“記錄集”,是物件型別的,
如果它沒有默認屬性,或者默認屬性不是“VB6基礎型別資料”,
這種是不能“自動型別轉換成文本”的,就會提示型別不匹配。
進行AddItem操作時,應該是傳 Adodc1.Recordset的某個“欄位”的值才對吧!
如果有多條記錄,你需要用“回圈”進行多次cboLX.AddItem操作,才能正確添加……
(因為我沒有具體的使用過這方面的東西,也只能說個“大方向”了)
uj5u.com熱心網友回復:
sqlStr = "select [型別編號] from Type where " & _
"[型別]='" & Trim(cboLX.Text) & _
"' AND [所在地]='" & Trim(txtHeritage(1).Text) & _
"' AND [列入時間]='" & Trim(txtHeritage(2).Text) & "'"
uj5u.com熱心網友回復:
Sub InitLX()Dim values As Variant
sqlStr = "select 型別 from Type order by 型別"
Adodc1.RecordSource = sqlStr
Adodc1.Refresh
While Not Adodc1.Recordset.EOF
cboLX.AddItem Adodc1.Recordset!型別
Adodc1.Recordset.MoveNext
Wend
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/57414.html
標籤:VB基礎類
