Avatar billede domino1977 Nybegynder
08. august 2002 - 11:16 Der er 18 kommentarer og
1 løsning

Søgning i flere felter

Jeg vil gerne have lavet en søge funktion, sådan at den søger i alle mine felter der er koblet op på en access database og ind i en VB6 program.

Den skal kunne genkender navne tlf numre osv... osse selvom man kun skriver en del af det der står i feltet....

Eks: søger man efter "jens" så finder den alle dem der enten hedder jens eller jensen osv...

Hvis den finder en post der passer ind, så skal den stoppe op og vise den... er det ikke lige den så skal man kunne sige søg videre eller sådan noget....

Kan nogen hjælpe mig med den??

Jeg er SLET ikke en haj til det her Visual Basic, så hvis i vil være lidt brugervenlig.....

100000 TAK
Avatar billede medions Nybegynder
08. august 2002 - 11:24 #1
fx.

SELECT * FROM tabel WHERE navn LIKE ('jens'%)

så finder den alle de records der har noget med jens at gøre.. fx. Jens Hansen eller Jens bundgaard...

//>Rune
Avatar billede medions Nybegynder
08. august 2002 - 11:29 #2
Fx. kan du bruge denne SQL query...

strSQL = "SELECT ID, Navn, Adresse, Bynavn, Beskrivelse FROM Kunder WHERE"
strSQL = strSQL & " (Navn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Adresse LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Bynavn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Beskrivelse LIKE '%" & strKeyword & "%')"

Den undersøger alle dine felter.. og alt hvad der har med dit "Keyword" at gøre..

//>Rune
Avatar billede domino1977 Nybegynder
08. august 2002 - 11:30 #3
Hvad nu hvis der er en der hedder Hans Jensen???

Finder den så osse ham???
Avatar billede domino1977 Nybegynder
08. august 2002 - 11:46 #4
Skal jeg bare sætte det ind som en click event på en Commandbutton???

Jeg har jo ikke en SQL database.... men en Access database...
Avatar billede medions Nybegynder
08. august 2002 - 12:00 #5
Ja den finder oxo Hans Jensen.. hvis du ikke ønsker det, kan du bare fjerne procenttegnet foran strKeyword ved navn!

-prøv lige at lad mig se din connection til din Access database..!

//>Rune
Avatar billede domino1977 Nybegynder
08. august 2002 - 12:35 #6
Jeg har bare sat en "data" controler ind... sat den til at hente data fra en database.. indsat en textboks, og sat dem til at gå ind og vise en bestemt data fra en den tabel der er i databasen.....
Avatar billede medions Nybegynder
08. august 2002 - 14:48 #7
Hmm.. okay, well, det er ik' så godt, i dette tilfælde.. Men okay, nu ved jeg ikke hvor meget du brænder efter at lære Visual Basic, men hvis du bare kan en smugle SQL så kan du med denne simple kode gøre det let!:

'** Betingelser:
'** Reference: Microsoft ActiveX Data Objects 2.5 Library

    Dim objConn As New Connection
    Dim objRs As Recordset
    Dim strSQL As String
   
  Function Connection()
      Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\DB.mdb"
  End Function

og så er det bare at skrive:

strSQL = "SELECT ID, Navn, Adresse, Bynavn, Beskrivelse FROM Kunder WHERE"
strSQL = strSQL & " (Navn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Adresse LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Bynavn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Beskrivelse LIKE '%" & strKeyword & "%')"
Set objRs = objConn.Execute(strSQL)

-Prøv at leg lidt med det... -det her er lidt sjovere end datakontroler!

//>Rune
Avatar billede medions Nybegynder
08. august 2002 - 14:50 #8
Undskyld, jeg manglede at rette et objekt til.. brug denne koden:

'** Betingelser:
'** Reference: Microsoft ActiveX Data Objects 2.5 Library

    Dim objConn As New Connection
    Dim objRs As Recordset
    Dim strSQL As String
   
  Function Connection()
      objConn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\DB.mdb"
  End Function

og så er det bare at skrive:

strSQL = "SELECT ID, Navn, Adresse, Bynavn, Beskrivelse FROM Kunder WHERE"
strSQL = strSQL & " (Navn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Adresse LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Bynavn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Beskrivelse LIKE '%" & strKeyword & "%')"
Set objRs = objConn.Execute(strSQL)

//>Rune
Avatar billede domino1977 Nybegynder
08. august 2002 - 15:04 #9
Hvor skal det stå henne af????
Avatar billede medions Nybegynder
08. august 2002 - 15:07 #10
Well, det kunne fx. være i toppen af dit dokument... Du jo så selvfølgelige lige rette scriptet til først, fx. du skal lave en sti til din database og skrive det rigtige navn på din database... -hmm hvis du sender en din database og dit program til mig kan jeg lave det for dig... rune@medions.dk

//>Rune
Avatar billede domino1977 Nybegynder
08. august 2002 - 15:11 #11
Er sendt....
Avatar billede medions Nybegynder
08. august 2002 - 15:13 #12
ok... -har du oxo ICQ, eller MSN, for så kan jeg jo lige forhøre mig om forskellige ting der...

//>Rune
Avatar billede medions Nybegynder
08. august 2002 - 15:19 #13
Ok, jeg har modtaget den... -jeg er desvære nødt til at smutte nu.. -kommer igen i morgen... -læg lige dit ICQ eller MSN id her, så adder jeg dig i aften eller i morgen...

//>Rune
Avatar billede domino1977 Nybegynder
08. august 2002 - 15:24 #14
jeg har desværre ikke tid før engang søndag måske.....

Men gider du lige kigge lidt på det??
Avatar billede medions Nybegynder
08. august 2002 - 22:21 #15
Yep, skal jeg nok.. Men du er lige nødt til at give mig dit ICQ nr eller Messenger ID, så jeg lige kan kontakte dig...!

//>Rune
Avatar billede domino1977 Nybegynder
09. august 2002 - 08:32 #16
du kan bare lige få min email: domino@tdcadsl.dk
Avatar billede medions Nybegynder
11. august 2002 - 19:50 #17
ok, her har du det så...:

Option Explicit

Dim objConn As New Connection
Dim objRs As Recordset
Dim strSQL As String
Dim strKeyword As String

Private Sub cmdSearch_Click()
    List1.Clear
    strKeyword = txtSearch.Text
    objConn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\data.mdb"
            strSQL = "SELECT adresse, by, postnummer, land, kontaktperson, telefon, fax, email FROM kunde WHERE"
            strSQL = strSQL & " (adresse LIKE '%" & strKeyword & "%')"
            strSQL = strSQL & " OR (by LIKE '%" & strKeyword & "%')"
            strSQL = strSQL & " OR (postnummer LIKE '%" & strKeyword & "%')"
            strSQL = strSQL & " OR (land LIKE '%" & strKeyword & "%')"
            strSQL = strSQL & " OR (kontaktperson LIKE '%" & strKeyword & "%')"
            strSQL = strSQL & " OR (telefon LIKE '%" & strKeyword & "%')"
            strSQL = strSQL & " OR (fax LIKE '%" & strKeyword & "%')"
            strSQL = strSQL & " OR (email LIKE '%" & strKeyword & "%')"
        Set objRs = objConn.Execute(strSQL)
           
            While Not objRs.EOF
                List1.AddItem "" & objRs("telefon") & ""
            objRs.MoveNext
            Wend
        Set objRs = Nothing
    objConn.Close
End Sub

Private Sub Form_Load()
    objConn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\data.mdb"
        strSQL = "SELECT * FROM kunde"
        Set objRs = objConn.Execute(strSQL)
   
            adresse.Text = objRs("adresse")
            'adresse2.Text = objRs("adresse2") 'fjern mellemrumet i databasen, ved adresse 2!
            by.Text = objRs("by")
            postnummer.Text = objRs("postnummer")
            land.Text = objRs("land")
            person.Text = objRs("kontaktperson")
            telefon.Text = objRs("telefon")
            fax.Text = objRs("fax")
            email.Text = objRs("email")
        Set objRs = Nothing
    objConn.Close
End Sub

-jeg har send det hele pakket til dig på mail...!
//>Rune
Avatar billede domino1977 Nybegynder
14. august 2002 - 11:20 #18
Den er bare ivinkel!!!!!!

TAKKER
Avatar billede medions Nybegynder
14. august 2002 - 15:34 #19
Var så lidt ;o)
Thx 4 Poinz

//>Rune
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