在eVB上無法作出有效的索引動作

請教 各位前輩,

小弟於專題設計一個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
2006-06-06 19:29 發佈
文章關鍵字 EVB 索引動作
先把字串組好再丟進去看看
QryStr="SELECT * FROM data WHERE ID1=' " & TextID1.Text & " ' "

Rs.Open QryStr,conn
不行的話
把你的QryStr先用MsgDialog丟出來看看組出來的字串對不對
前輩 您好:
我試了這個方法還是不行,
您有提到用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

請參考看看!......

哈…好像可以了,
真的很感謝您們,謝謝。
都是同行的,不用客氣,能解決問題也替你高興
我也是evb的愛用者,從WINCE3.0剛開始的彩色版PPC用到現在
不受vs.net的誘惑.......其實是學不會啦

可惜不能用VBA控制 POCKET EXCEL 只能用 ADOCE3.0
每次都要轉成*.mdb再轉*.pxl
資料一改又要重轉

h5379 您好:
可以再跟您請教一個問題嗎?

就是我想在PDA連結RFID,一樣用eVB來撰寫的,
只是我開啟這個RFID讀取器後,
Comm1.CommPort = 5
Comm1.Settings = "9600,n,8,1"
Comm1.PortOpen = True

如何用COMM寫一個接收這組ID呢?
我的RFID READER是PCR123
http://www.best-kassensystem.de/artikelbilder/pmpcr125.pdf

如果您會的話,可以請您指教嗎?


您指的是CF卡的無線網卡嗎?
抱歉!我沒實際寫到這個部分過...因為工作上暫時用不到...
只有寫比較單純的藍芽傳輸...
我在猜是不是您的RFID PORT不是5(因為藍芽已經用了5,6了)
可否先做個COMBO LIST來切換COMPORT1~8
祝您成功
謝謝您的關心,真的謝謝。




弄出來了,與大家分享,如果有和我一樣硬軟體的朋友,謝謝!
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 )
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?