04. september 2002 - 09:58Der er
39 kommentarer og 1 løsning
At søge i Access gennem VB 6.0
Jeg har fået et fint lille program der er koblet op til en Access database... først brugt jeg denne søge måde her: ------------------------------------------------------- Private Sub cmdSearch_Click() List1.Clear strKeyword = txtSearch.Text objConn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\data.mdb" strSQL = "SELECT konto, navn, Adresse, by, postnr, land, telefon, fax, kontaktperson FROM kunder WHERE"
strSQL = strSQL & " (konto LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (navn LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (Adresse1 LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (by LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (postnr LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (land LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (telefon LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (fax LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (kontaktperson LIKE '%" & strKeyword & "%')" Set objRs = objConn.Execute(strSQL)
While Not objRs.EOF List1.AddItem "" & objRs("navn") & "" objRs.MoveNext Wend Set objRs = Nothing objConn.Close End Sub ------------------------------------------------------- MEN nu kører jeg med DAO, kan jeg få den til det samme????
OK..... nu er jeg kommet lidt længere: --------------------------------------------------------------------------- Private Sub cmdSearch_Click() List1.Clear
Dim soegenavn As String soegenavn = txtSearch recRecordset.MoveFirst If Not recRecordset.EOF Then UpdateFelter Do While recRecordset.EOF = False If recRecordset("Navn") = soegenavn Then List1.AddItem "" & recRecordset("navn") & "" Exit Sub End If recRecordset.MoveNext Loop MsgBox "Søgeord ikke fundet" End If End Sub --------------------------------------------------------------------------- Men jeg kan ikke få det til at søge i flere felter fra databasen OG hvis man skriver "Jens" så skal den osse komme med "Jensen".....
Man har en textboks hvor du kan indtaste dit sogeord. HVIS man skriver JENS skal den gå ind i Access database og kigge efter ALT hvor der indgår JENS, og list alt den har fundet i en listfelt. Selve det med at liste resultaterne har jeg fået den til!
MEN det jeg har brug for er at selv om man skriver JENS skal den osse finde PETER JENSEN. Og så skal kunne kigge i flere felter feks. navn, telefonnummer, adresser osv.
Set recRecordset = datdb.OpenRecordset(strSQL) --------------------------------------------------------------------------- Og der hvor du skriver Ark1, er det ligemed tabellensnavn??
Men selve min kode er da rigtgit nok er den ikke??: --------------------------------------------------------------------------- Søge funktionen i listefeltet' Private Sub cmdSearch_Click() List1.Clear strSQL = "SELECT * FROM Kunder WHERE Kunder.Navn Like *'" & Text3.Text & "'*" Set recRecordset = datdb.OpenRecordset(strSQL) Do While Not recRecordset.EOF List1.AddItem recRecordset("Navn") recRecordset.MoveNext Loop MsgBox "Søgeord ikke fundet"
Du vil gerne have programmet til at sige "Søgeord ikke fundet" hvis der ikke findes noget i databasen ik? Lige nu vil den sige det lige meget om du finder noget eller ej!
Defor: Private Sub cmdSearch_Click() List1.Clear strSQL = "SELECT * FROM Kunder WHERE Kunder.Navn Like *'" & Text3.Text & "'*" Set recRecordset = datdb.OpenRecordset(strSQL) Do While Not recRecordset.EOF List1.AddItem recRecordset("Navn") recRecordset.MoveNext Loop If List1.ListCount = 0 Then MsgBox "Søgeord ikke fundet" End If End Sub
strSQL = "SELECT * FROM Ark1 WHERE Navn Like '*" & Text3.Text & "*'" Set recRecordset = datdb.OpenRecordset(strSQL) list1.clear Do While Not recRecordset.EOF List1.AddItem recRecordset("Navn") recSearch.MoveNext Loop If List1.ListCount = 0 Then MsgBox "Søgeord ikke fundet" End If
Jeg har nogle checkboxe som gerne skal linkes op til hver kunde, feks: Julekort, katalog osv...
Så skal man kunne krydse dem af ved hver kunde og gemme det til senere brug!!
Min kode ser sådan her ud: --------------------------------------------------------------------------- Private Sub UpdateFelter() katalog_checkbox = recRecordset("katalog_checkbox") & "" ---------------------------------------------------------------------------
Men den vil ikke rigtigt... hvorfor??? Skal man give checkboxen et specielt efternavn ligesom text1.text eller???
jeg har tilføjet et felt i databasen der hedder "Julekort" dette felt er af typen Ja/Nej, du skal vide at værdien for ja er 1 og værdien for nej 0 Det samme gælder for checkboxen, skal den være checked er værdien 1, altså:
check1.value = 1
ikke checked bliver altså så:
check1.value = 0
Lav følgende subs om:
Private Sub UpdateFelter()
Text1.Text = recRecordset("ID") Text2.Text = recRecordset("KundeNr") If recRecordset("Julekort") = -1 Then Check1.Value = 1 Else Check1.Value = 0 End If
End Sub
---------------------------------- Private Sub Command7_Click() recRecordset.Edit recRecordset("ID") = Text1.Text recRecordset("KundeNr") = Text2.Text If Check1.Value = 1 Then recRecordset("Julekort") = -1 Else recRecordset("Julekort") = 0 End If recRecordset.Update End Sub
Jeg er newbie i vb 6.0 og øver mig på en databaseløsning. Jeg er ikke sikker på hvilken løsning jeg skal vælge til den planlagte cd-rom løsning, der skal distribueres til 3 samarbejdspartnere. Skal jeg anvende ADO fra starten eller blot flexgrid control med de forskellige søgemuligheder...
Tak for din zip fil den ser interessant ud. Har du en ide om hvordan man laver kald via en drop down (combo box) til access databasen med sql kald, hvor man f.eks. spøger på et sprog og resultatet viser alle der taler det givne sprog?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.