請教 各位前輩,
小弟於專題設計一個PDA搜尋資料庫的動作,
(PDA是ACER N50、開發程式是eVB、資料庫是POCKET ACCESS)
如在TextID1中,填入ID作找出該筆記錄的動作,
其資料依序填入TEXTBOX中(詳如下);
過程中卻發現我把ID(ex:12345)填入TextID1中,就是無法找到該筆記錄,
可是如果在語法中,
把 "SELECT * FROM data WHERE ID1=' " & TextID1.Text & " ' ",
改 "SELECT * FROM data WHERE ID1=' 12345 ' ",
則成功顯示出該筆ID=12345的記錄,
此TextID1還是沒有索引的功能,只是靠語法找出該筆記錄。
但是,我是想要透過在TextBox填入ID,而找出資料,
可以請各位前輩幫我看看是哪裡有問題,謝謝!
該步驟的語法如下:
Private Sub CmdShow_Click()
Dim conn As ADOCE.Connection
Dim rs As ADOCE.Recordset
Set conn = CreateObject("ADOCE.Connection.3.1")
Set rs = CreateObject("ADOCE.Recordset.3.1")
conn.Open "\Program Files\DBMS.cdb"
rs.Open "SELECT * FROM data WHERE ID1='" & TextID1.Text & "'", conn
TextID2.Text = rs("ID2").value
TextName.Text = rs("工程名稱").value
TextPlace.Text = rs("澆置位置").value
TextDate.Text = rs("取樣日期").value
TextCar.Text = rs("取樣車號").value
Text1Dimension.Text = rs("尺寸").value
TextStrength.Text = rs("抗壓強度").value
TextCave.Text = rs("坍度").value
TextHeat.Text = rs("溫度").value
TextChlorine.Text = rs("含氯量").value
rs.Close
Set rs = Nothing
End Sub
我試了這個方法還是不行,
您有提到用MsgDialog確認字串,
可以請教您這個方式怎做?
謝謝。
P.S我一直覺得它沒有讀到,因為我用了以下方式,似乎根本沒有辨識到。
If rs.RecordCount = 0 Then
MsgBox "此ID為無效ID"
Exit Sub
Else
TextID2.Text = rs("ID2").Value
TextName.Text = rs("工程名稱").Value
TextPlace.Text = rs("澆置位置").Value
TextDate.Text = rs("取樣日期").Value
TextCar.Text = rs("取樣車號").Value
Text1Dimension.Text = rs("尺寸").Value
TextStrength.Text = rs("抗壓強度").Value
TextCave.Text = rs("坍度").Value
TextHeat.Text = rs("溫度").Value
TextChlorine.Text = rs("含氯量").Value
End If
yuanfeng wrote:
請教 各位前輩,小弟...(恕刪)
看起來好像沒錯...但我也都是設成字串再rs.OPEN
,因為常常問題都出在搜尋字串拼在一起的地方
你可否試試看將 TextID1.Text 先設成 STRING變數型態
Dim conn As ADOCE.Connection
Dim rs As ADOCE.Recordset
DIM id,cond as string
Set conn = CreateObject("ADOCE.Connection.3.1")
Set rs = CreateObject("ADOCE.Recordset.3.1")
id = TextID1.Text
cond = "SELECT * FROM data WHERE ID1 = '" & id & "'"
conn.Open "\Program Files\DBMS.cdb"
rs.Open cond, conn, adOpenKeyset, adLockPessimistic
請參考看看!......
弄出來了,與大家分享,如果有和我一樣硬軟體的朋友,謝謝!
Private Sub Comm1_OnComm()
Dim d, i As Integer, hwnd As Long
On Error Resume Next
If Comm1.InBufferCount > 0 Then
d = Comm1.Input
For i = LBound(d) To UBound(d)
Select Case d(i)
Case &H2
strId = ""
Case &HD
TextID1.Text = strId
strId = ""
Case Else
If d(i) >= &H20 And d(i) <= &H7F Then
strId = strId & Chr(d(i))
End If
End Select
Next i
End If
End Sub
上面有些是本網的簡寫,所以用空格來避免,如下:
(d)= ( d )
(i)=( i )
內文搜尋
都是同行的,不用客氣,能解決問題也替你高興


























































































