webForumDet fria alternativet

Databas-sökning

.NETur .NET

2 svar · 216 visningar · startad av dodervang

Medlem sedan maj 20028 inlägg
Frågan#1

Hej

Använder följande kod för att söka i en Access-databas med SQL:

Dim varSokning As String
varSokning = Form1.txtSokning.Text
Dim Conn As New ADODB.Connection
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\test.mdb;uid=Admin"
Dim RS As ADODB.Recordset
Set RS = New ADODB.Recordset
Dim SQL As String
SQL = "SELECT Translation, Grupp From Dictionary WHERE Word = '" & varSokning & "'"
Set RS = Conn.Execute(SQL)

Det jag gärna skulle vilja veta är hur jag gör för att möjliggöra mer än ett sökresultat. Koden ovan returnerar bara ett.
Om jag får fler resultat, hur gör jag för att skriva dessa i en textbox exempelvis? Som det är nu skriver jag tex: txt1.Text = RS("Grupp")

Medlem sedan mars 20007 896 inlägg
#2

Du kan använda en loop för att få ut alla resultat:

...
Set RS = Conn.Execute(SQL)

Do Until RS.EOF
txt1.Text = txt1.Text & "; " & RS("Grupp")
RS.MoveNext
Loop
...

Eftersom att det här handlar om databassökningar så skulle jag föreslå dig att använda operatorn LIKE istället för = i SQL-frågan också, med wildcards. Då får du ut alla fält som innehåller värdet i variabeln varSokning.

SELECT Translation, Grupp FROM Dictionary WHERE Word LIKE '%" & varSokning & "%'

Wildcards ( % ) betyder att fältet inte behöver vara precis varSokning, utan bara behöver innehålla värdet.

Medlem sedan maj 20028 inlägg
#3

Tackar tackar. Det där löste sig utmärkt!

134 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)