想編一個隨機抽簽的程式
資料來自excel表格
抽出來的人顯示其作業單位,作業號碼和手機號
但是每次執行到手機號那一列時 如果有兩個號 或者資料較長時都會出現這個錯誤 但是在作業號碼那一列不管數字多長都不會出錯
代碼如下:
Private Sub Command2_Click()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "/名單.xls;Extended Properties='EXCEL 8.0;HDR=YES;IMEX=1'"
Adodc1.RecordSource = "Select * from [Sheet1$] where 行業='" + Combo1.Text + "'"
Adodc1.Refresh
Randomize
Dim i As Integer
If Not Adodc1.Recordset.EOF Then
i = Int(Rnd * Adodc1.Recordset.RecordCount) + 1
Adodc1.Recordset.Move i - 1
Label1.Caption = Adodc1.Recordset.Fields(1)
Label3.Caption = Adodc1.Recordset.Fields(9)
Label8.Caption = Adodc1.Recordset.Fields(6)
Label4.Caption = Adodc1.Recordset.Fields(10)
Else
MsgBox "沒有滿足條件的資料!", vbOKOnly, "系統訊息"
End If
End Sub
Private Sub Form_Load()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "/評標專家人員名單.xls;Extended Properties='EXCEL 8.0;HDR=YES;IMEX=1'"
Adodc1.RecordSource = "Select Distinct 行業 from [Sheet1$] order by 行業"
Adodc1.Refresh
While Not Adodc1.Recordset.EOF
Combo1.AddItem Adodc1.Recordset.Fields("行業")
Adodc1.Recordset.MoveNext
Wend
End Sub
出錯陳述句是Label4.Caption = Adodc1.Recordset.Fields(10)
表格是這樣的


求助各位大神!!
uj5u.com熱心網友回復:
用isnull(Adodc1.Recordset.Fields(10))判斷一下,跟蹤看看....uj5u.com熱心網友回復:
Label4.Caption = Adodc1.Recordset.Fields(10) & ""uj5u.com熱心網友回復:
你的圖片看上去很詭異, 這表格中還有合并的?excel雖然可以用資料庫方式操作, 但是并不推薦, 人家畢竟不是專門用于資料庫的. 而且很多時候會因為人工輸入有無和自動資料格式轉換而給程式帶來莫名其妙的麻煩.
最后, 你的程式并不健壯
類似Label3.Caption = Adodc1.Recordset.Fields(9) 這種代碼, 只要一個空值就崩潰了.
uj5u.com熱心網友回復:
這是兩幅圖吧
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/112453.html
標籤:VB基礎類
