Avatar billede domino1977 Nybegynder
04. september 2002 - 09:58 Der 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????

PLEASE HELP
Avatar billede domino1977 Nybegynder
04. september 2002 - 10:18 #1
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".....

Kan nogen hjælpe mig???
Avatar billede bccinlove Nybegynder
04. september 2002 - 11:26 #2
Jeg er ikke helt med...

Skal man kunne søge i din database? Søge efter noget der skal stå i et felt?

Hvis så kan du gøre følgende:

Dim strSearch as string

strSearch = "Danmark"

Do while not RecRecordset.EOF
  If strSearch = recRecordset("FeltNavn") then
  Msgbox "HURRA"
Loop
Avatar billede domino1977 Nybegynder
04. september 2002 - 11:33 #3
Ikke helt...

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.

Gav det en lidt bedre ide?????
Avatar billede bccinlove Nybegynder
04. september 2002 - 11:34 #4
OK, er der med løsning om 10 min!
Avatar billede bccinlove Nybegynder
04. september 2002 - 11:56 #5
strSQL = "SELECT * FROM Ark1 WHERE ark1.Navn Like *'" & Text3.Text & "'*"
Set recRecordset = datdb.OpenRecordset(strSQL)

Do While Not recRecordset.EOF
    List1.AddItem recRecordset("Navn")
    recRecordset.MoveNext
Loop
Avatar billede bccinlove Nybegynder
04. september 2002 - 11:57 #6
You get it?
Avatar billede domino1977 Nybegynder
04. september 2002 - 12:02 #7
Jaaaa.......

men hvorfor går den istår her:

Set recRecordset = datdb.OpenRecordset(strSQL)
---------------------------------------------------------------------------
Og der hvor du skriver Ark1, er det ligemed tabellensnavn??

og ark1.Navn... hvad er det så????
Avatar billede bccinlove Nybegynder
04. september 2002 - 12:09 #8
Ja jeg har også opdaget en fejl...

Den går sådan set i stå i min SQL statement... der er en fejl i den et eller andet sted??? Jeg kan ikke lige hitte ud af hvor!

Ja "ark1" er tabellens navn.

ark1Navn er SQL-sprog på denne måde refererer du til en tabel.feltnavn!
Avatar billede bccinlove Nybegynder
04. september 2002 - 12:13 #9
Jeg forsøger lige at finde ud af hvad fejlen i SQL sætningen er!
Avatar billede domino1977 Nybegynder
04. september 2002 - 12:20 #10
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"

End Sub
Avatar billede bccinlove Nybegynder
04. september 2002 - 12:30 #11
Næsten...

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
Avatar billede bccinlove Nybegynder
04. september 2002 - 12:40 #12
Nu har jeg den:

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

End Sub
Avatar billede bccinlove Nybegynder
04. september 2002 - 12:48 #13
Du kan selvfølgelig stadig downloade mit projekt, hvis du vil se mine notes...

www.oyan.adsl.dk/DatabaseLearning.zip

/bccinlove
Avatar billede domino1977 Nybegynder
04. september 2002 - 12:52 #14
Jamen hvad nu hvis den skal søge i felterne "NAVN", "KONTO", "ADRESSE" osv????
Avatar billede bccinlove Nybegynder
04. september 2002 - 12:58 #15
sekund!
Avatar billede bccinlove Nybegynder
04. september 2002 - 13:16 #16
Her har du SQL sætningen til hvor adresse også er med!

strSQL = "SELECT * FROM Ark1 WHERE Navn Like '*" & Text3.Text & "*' OR Adresse LIKE '*" & Text3.Text & "*'"
Avatar billede bccinlove Nybegynder
04. september 2002 - 13:18 #17
Og med konto....

strSQL = "SELECT * FROM Ark1 WHERE Navn Like '*" & Text3.Text & "*' OR Adresse LIKE '*" & Text3.Text & "*' OR Konto LIKE '*" & text3.text & "*'"
Avatar billede bccinlove Nybegynder
04. september 2002 - 13:19 #18
Avatar billede domino1977 Nybegynder
04. september 2002 - 13:22 #19
Den kommer og siger at der kun var ventet 1!!!!!!!
Avatar billede bccinlove Nybegynder
04. september 2002 - 13:26 #20
ved hvilken?
Avatar billede bccinlove Nybegynder
04. september 2002 - 13:26 #21
har du stavet feltnavnet korrekt? Og findes feltet?
Avatar billede domino1977 Nybegynder
04. september 2002 - 13:44 #22
Du har ret!!!!!
Avatar billede bccinlove Nybegynder
04. september 2002 - 13:44 #23
Tja... ;-)
Avatar billede domino1977 Nybegynder
04. september 2002 - 14:03 #24
Kan man osse koble en checkbox op til en database?????

Jeg har nemlig prøvet, men den går ikke med til det!!!!!
Avatar billede bccinlove Nybegynder
04. september 2002 - 14:05 #25
forklar lidt mere...
Avatar billede domino1977 Nybegynder
04. september 2002 - 14:10 #26
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???
Avatar billede bccinlove Nybegynder
04. september 2002 - 15:02 #27
Sekund...
Avatar billede bccinlove Nybegynder
04. september 2002 - 15:14 #28
Done:

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
Avatar billede domino1977 Nybegynder
04. september 2002 - 15:17 #29
Ok...... gemmer den det så eller???
Avatar billede domino1977 Nybegynder
04. september 2002 - 15:25 #30
Åååårhhhhhhhhhhhhhhhhhhhhhhh...........!!!!!!!!!!!!!!!!!!!!!!!!

GLEM det....... laver det på en anden måde....

Takker for denne gang..... skal du ikke have nogle point??????
Avatar billede bccinlove Nybegynder
04. september 2002 - 15:42 #31
det er jo noget du styrer
Avatar billede bccinlove Nybegynder
04. september 2002 - 15:44 #32
Hvis du ikke "gider" lavet det selv... så kan du jo bare hente det fra

www.oyan.adsl.dk/DatabaseLearning.zip

Der er alle de funktioner inkl. forklaring som jeg har givet dig!
Avatar billede pbo Nybegynder
09. september 2002 - 21:09 #33
Til bccinlove

dit link virker ikkt/din server er nede - vil gerne se din zip fil

pbo
Avatar billede bccinlove Nybegynder
09. september 2002 - 22:42 #34
Avatar billede bccinlove Nybegynder
09. september 2002 - 22:43 #35
Avatar billede bccinlove Nybegynder
09. september 2002 - 22:44 #36
hvad skal du bruge?
Avatar billede pbo Nybegynder
10. september 2002 - 22:40 #37
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...
Avatar billede pbo Nybegynder
10. september 2002 - 23:02 #38
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?
Avatar billede bccinlove Nybegynder
11. september 2002 - 11:33 #39
Ja da!
Avatar billede pbo Nybegynder
12. september 2002 - 20:38 #40
Jamen hva' så?
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester