HeJ! >select fstnam from Customers where fstnam= "...el." (pelle, men Hej, ok..det fugerar inte... jag har följande kod du kan inte anv. LIKE på ett datumfält.... Oh jag glömde att meddela att datumfälten är textsträngar....jagbhar valt att inte använda Date, utan de ligger som Text Sorry! Det är ett felaktigt kolumnnamn i din fråga. Hej Martin Rex skrev jag tackar på det djupaste för eran hjälp....nu har jag massor att gå på så det är bara att bita i...söka med en del av ett ord SQL
Jag vill vet hur jag skriver för att söka i en databas med en select-sats fast bar välja ut en del av ett ord att matcha med...
ex:
select fstnam from Customers where fstnam= "...el." (pelle, men endast "el" skall vara sökkriterier och alla förnamn med "el" i 4 och 5 position.
och hur jag sedan får ut alla matchningar ur recordsetet
combo1.additen rst("fstnam") ex:
hoppas att ni förstår...
tilläg: jag kör mot en accessdatabas
/TyronneSv: söka med en del av ett ord SQL
>endast "el" skall vara sökkriterier och alla förnamn med "el" i 4 och 5
>position.
Vet inte om access klarar det men i andra databaser är wildcards för ett tecken _ (underscore) eller ? (frågetecken). Så frågan borde bli ngt sånt här: (observera att man använder like vid den typen av sökningar)
select fstnam from Customers where fstnam LIKE "___el_"
>och hur jag sedan får ut alla matchningar ur recordsetet
>combo1.additen rst("fstnam") ex:
Fattar inte riktigt hur du menar, men vill du lista det i combobox från vb så ska du testa datacombon som kan använda datakällor. Den är lite krånglig att lära sig men betydligt smidigareän att skrive en massa kod.Sv: söka med en del av ett ord SQL
Testa de på en av mina tabeller..och detta funkade bra :
<code>
Private Sub Command1_Click()
Data1.RecordSource = "Select * from Orderlines where mid(ItemName,3,2)='lv' "
Data1.Refresh
While Not Data1.Recordset.EOF
List1.AddItem (Data1.Recordset!ItemName)
Data1.Recordset.MoveNext
Wend
End Sub
</code>
mvh
MartinSv: söka med en del av ett ord SQL
tmpDateSelect är en variabel som hämtar ut värdet från en
LEFT(combo1.text,2)
tmpProjID =5
TmpResID =7
<code>
SQLstr = " select * from timereg where projid=" & tmpProjID & " and resid= " & TmpResID & " and inserdate like ('_____" & tmpDateSelect & "____________')"
con.Open
Set rst = con.Execute(SQLstr)
</code>
och får följande felmeddelande:
"[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades"
När jag skriver frågan i access så ser den ut så här
<code>
SELECT * FROM timereg WHERE (((timereg.Projid)=5) AND ((timereg.resid)=7) AND ((timereg.insertdate) Like ('_____01___________')));
</code>
och då kommer det inget felmeddelande
har ni något förslag
/TyronneSv: söka med en del av ett ord SQL
>= funkar bra...men datumet ska vara omgärdat av '#yymmdd#'
/MartinSv: söka med en del av ett ord SQL
/TyronneSv: söka med en del av ett ord SQL
Du använder inserdate i din VB-kod men du har skrivit insertdate i AccessSv: söka med en del av ett ord SQL
Private Sub Command1_Click()
Data1.RecordSource = "Select * from Orderlines where mid(ItemName,3,2)='lv' "
Data1.Refresh
While Not Data1.Recordset.EOF
List1.AddItem (Data1.Recordset!ItemName)
Data1.Recordset.MoveNext
Wend
End Sub
**************************************
Kan inte låta bli att predika för optimering
Private Sub Command1_Click()
Dim i As Long,recCount As Long
Data1.RecordSource = "Select * from Orderlines where mid(ItemName,3,2)='lv' "
Data1.Refresh
Data1.Recordset.MoveLast
recCount = Data1.Recordset.RecordCount - 1
Data1.Recordset.MoveFirst
List1.Visible = False
For i = 0 To recCount
List1.AddItem (Data1.Recordset!ItemName)
Data1.Recordset.MoveNext
Next 'i
List1.Visible = True
End Sub
mvh
Sven som kommer att få en massa terrier i strupenSv: söka med en del av ett ord SQL
Tack!
Tyronne