Avatar billede woodgaard Nybegynder
12. februar 2004 - 13:53 Der er 38 kommentarer og
4 løsninger

søg på 2 felter

Hej alle sammen  nu har jeg fået svar på nogle af mine spørgsmål.
http://www.eksperten.dk/spm/463420

Men har stadig lidt problemer. hvordan søger jeg på 2 felter. f.eks. post nummer og land. så jeg kan finde alle som bor i Danmark og har et bestemt post nummer..?
Avatar billede mugs Novice
12. februar 2004 - 14:01 #1
I dit tidligere spørgsmål er der tale om at filtrere. Denne kan du bruge til at lade en forespørgsel returnere poster der opfylder 2 kriterier:

Like "*" & [Forms]![form1]![postnr] & "*"

Like "*" & [Forms]![form1]![land] & "*"

felterne postnr og land refererer til 2 felter i form1. Kriterierne skal indsættes på samme linie under hvert sit felt i forespøegslen.
Avatar billede woodgaard Nybegynder
12. februar 2004 - 17:03 #2
Jeg vil gerne have at brugen skal kunne indtaste hvilket post nummer og land der skal søges på. og søgningen skal forgå i nogle tekstboks (ubundet). Har du en løsning på dette..?
Avatar billede mugs Novice
12. februar 2004 - 17:06 #3
På nøjagtig samme måde, i stedet for at referere til felterne postne og land, refererer du blot til 2 ubundne tekstbokse:

Like "*" & [Forms]![form1]![TEKST0] & "*"
Like "*" & [Forms]![form1]![TEKST2] & "*"
Avatar billede woodgaard Nybegynder
12. februar 2004 - 17:18 #4
hvad skal jeg skrive [Forms]![form1]![TEKST0]

min tabel hedder Kunde_Firma_profil
min formular hedder Form_firma
min tekstfelt hedder SøgFirma


?????????????
Avatar billede mugs Novice
12. februar 2004 - 17:24 #5
Lav en forespørgsel baseret på tabellen Kunde_Firma_profil og træk relevante felter ned i dens designgitter. Luk, lagre og kald den forespørgsel1. I postnr feltet indsætter du dette kriterie:

Like "*" & [Forms]![Form_firma]![Tekst0] & "*"

I lande-feltet indsætter du flg:

Like "*" & [Forms]![Form_firma]![Tekst2] & "*"



På formularen Form_firma sætter du 2 ubundne Tekstbokse. Kald dem Tekst0 of Tekst2. Desuden en kommandoknap, i dennes VedKlik (OnClick) event skriver du:

DoCmd.openQuery "forespørgsel1"

Nu indtaster du et postnr eller dele heraf i Tekst0 og et landenavn eller dele heraf i Tekst2. Tryk herefter på din kommandoknap. Forespørgslen vil blive åbnet visende de poster der matcher dine kriterier.
Avatar billede terry Ekspert
12. februar 2004 - 19:13 #6
here is a link to an example of how to make a search routine with more than one field.

http://home1.stofanet.dk/santhel/Download/Search demo 97.zip

and you need Search demo 97.zip in the link
Avatar billede woodgaard Nybegynder
13. februar 2004 - 08:30 #7
jeg har lige prøvet men får fejlen at makroen docmd ikke kan findes..?
Avatar billede mugs Novice
13. februar 2004 - 08:42 #8
Der er ikke tale om en makro. Kontroller for stavefejl. Ken sende et eksempel hvis du lægger din e-mail. Om ca 1 kvarter er jeg vær i et par timer.
Avatar billede woodgaard Nybegynder
13. februar 2004 - 08:45 #9
min email er olano@coldplay.dk
Avatar billede woodgaard Nybegynder
13. februar 2004 - 08:59 #10
når jeg trykke søg åbner den en tabel kan man ikke få den til at skrive det i nogle tekst boks i formularen. hvis der er tre som passe på søgningen vil de blive vist på formularen og ikke i et tabel.
Avatar billede mugs Novice
13. februar 2004 - 09:02 #11
Den åbner IKKE en tabel men en forespørgsel. Prøv at åbne forespørgslen i designvisning og se hvordan jeg har indsat kriterierne.

Du kan sagtens åbne en formular i stedet for. Du laver blot en formular baseret på forespørgslen, og i kommandoknappen:

DoCmd.OpenForm "FORMULARNAVN"
Avatar billede woodgaard Nybegynder
13. februar 2004 - 10:33 #12
så åbner den en ny formular kan man ikke få den til at hente data på den samme side..?
Avatar billede terry Ekspert
13. februar 2004 - 11:58 #13
woodgaard have you looked at the link?
Avatar billede mugs Novice
13. februar 2004 - 12:04 #14
Du kan stort set få hvad du vil have - det er kun et spørgsmål om at definere det.
Nyt eksempel sendt med en underformular bundet til hovedformularen.
Avatar billede terry Ekspert
13. februar 2004 - 12:10 #15
Can I see that too mugs?
You sent me an example of the picture dB, I didnt receive it, can you try again?
Avatar billede mugs Novice
13. februar 2004 - 12:19 #16
I will try again terry.
Avatar billede mugs Novice
13. februar 2004 - 12:33 #17
Both examples sent to terry. Please contact Me if ou don't receive them:

mugs@mail.dk
Avatar billede woodgaard Nybegynder
13. februar 2004 - 13:01 #18
terry > jeg har kigget men jeg vil gerne have en nem løsnig jeg forstår ikke den kodning du ligger bag..?

mugs > okay nu mangler jeg en ting.. hvis bruger søger nu skal han skrive fornavn og efternavn kan man ikke lave en løsning hvor det op til en selv om man vil skrive begge ting eller kun en ting som søg tekst..?=
Avatar billede mugs Novice
13. februar 2004 - 13:10 #19
Du skal overhovedet ikke skrive noget som helst. Prøv at skifte post i hovedformularen. Du vil så se, at underformularen altid viser de poster, der matcher hovedformularen.
Avatar billede woodgaard Nybegynder
13. februar 2004 - 13:14 #20
jeg ved ikke om det er mig der siger eller gør det forkert. jeg vil gerne have at jeg kan søge på kun fornavne eller kun efternavne eller begge ting på samme tid..? :-)
Avatar billede mugs Novice
13. februar 2004 - 13:19 #21
Ved at bruge Access indbyggede søgefunktion, kan du søge på ENTEN fornavn eller efternavn. Du kan også bruge terry's eksempel og filtrere efter begge felter.
Avatar billede woodgaard Nybegynder
13. februar 2004 - 14:39 #22
jeg ønsker ikke at bruge access indbygget funktion. jeg kigger lige noget mere på terry's forsøg.
Avatar billede terry Ekspert
13. februar 2004 - 16:35 #23
If you need any help on ths then just ask
Avatar billede woodgaard Nybegynder
13. februar 2004 - 17:03 #24
terry > jeg har prøvet at flytte kodningen fra din database over i min men jeg kan ikke få det til at virke er der mulighed for jeg kan sende dig min DB. så lige kunne kigge på den..? skriv din mail hvis du har tid og lyst.. :-)
Avatar billede terry Ekspert
13. februar 2004 - 17:23 #25
NOSPAMeksperten@santhell.dkNOSPAM

you need to remove NOSPAM
Avatar billede terry Ekspert
13. februar 2004 - 17:59 #26
Alter the Function to this. If the field you are searching on is a text field then itmust be enclosed in '' :o)



Function NewFilter()
Dim sFilter As String

    sFilter = "1 "
   
    If Not fldIsEmpty(Me.Søgfirma) Then
        sFilter = sFilter & " AND Firmanavn LIKE '*" & Me.Søgfirma & "*'"
    End If
   
    If Not fldIsEmpty(Me.Søgadresse) Then
        sFilter = sFilter & " AND Adresse = '*" & Me.Søgadresse & "*'"
       
    End If
   
    Me.Filter = sFilter
   
    If sFilter = "1 " Then 'No filter
        Me.FilterOn = False
    Else
        Me.FilterOn = True
    End If
   
End Function
Avatar billede woodgaard Nybegynder
13. februar 2004 - 18:39 #27
jeg har insat din kode og den giver ikke fejl nu. men det ser ikke ud til at virke. kun hvis jeg søger på firmanavn virker det. men ikke hvis jeg søger på adresse..?
Avatar billede terry Ekspert
13. februar 2004 - 20:07 #28
My fault, sorry!

Function NewFilter()
Dim sFilter As String

    sFilter = "1 "
   
    If Not fldIsEmpty(Me.Søgfirma) Then
        sFilter = sFilter & " AND Firmanavn LIKE '*" & Me.Søgfirma & "*'"
    End If
   
    If Not fldIsEmpty(Me.Søgadresse) Then
        sFilter = sFilter & " AND Adresse LIKE '*" & Me.Søgadresse & "*'"
       
    End If
   
    Me.Filter = sFilter
   
    If sFilter = "1 " Then 'No filter
        Me.FilterOn = False
    Else
        Me.FilterOn = True
    End If
   
   
End Function
Avatar billede terry Ekspert
13. februar 2004 - 20:10 #29
An exaplanation as to why it dint work!

Like '*sevej*''

will try and find those where adresse contains sevej

= 'sevej'

means that the adresse MUST be sevej
Avatar billede woodgaard Nybegynder
13. februar 2004 - 20:23 #30
DET virker jubii...! barer en lille ting til terry hvordan får jeg den til at skrive et eller andet når der ikke er nogen data der passer til et søgte data. f.eks "Desværre der er ingen poster som passer på din søgning"..?
Avatar billede terry Ekspert
13. februar 2004 - 21:17 #31
Function NewFilter()
Dim sFilter As String

    sFilter = "1 "
   
    If Not fldIsEmpty(Me.Søgfirma) Then
        sFilter = sFilter & " AND Firmanavn LIKE '*" & Me.Søgfirma & "*'"
    End If
   
    If Not fldIsEmpty(Me.Søgadresse) Then
        sFilter = sFilter & " AND Adresse = '*" & Me.Søgadresse & "*'"
       
    End If
   
    Me.Filter = sFilter
   
    If sFilter = "1 " Then 'No filter
        Me.FilterOn = False
    Else
        Me.FilterOn = True
    End If
   
    If Me.RecordsetClone.RecordCount = 0 Then
        MsgBox "Desværre er der ingen poster som passer til din søgning"
    End If
   
End Function
Avatar billede terry Ekspert
13. februar 2004 - 21:20 #32
At the meoment the search routine is made to do the search when youchange the data on any field. You could change it so that you have button which when pressed searched. To do this remove =NewFilter from each of the afterupdate events and palce this in th on click event for the button.
Avatar billede woodgaard Nybegynder
13. februar 2004 - 21:42 #33
Mange Tak for det gode råd men så virker min land søgning ikke..? jeg sender dig lige en kopi af databasen så du lige kan se for dig selv..?
Avatar billede terry Ekspert
13. februar 2004 - 21:55 #34
There is a digital signature on the mail you sent, can you send me just a plain old mail?
Avatar billede terry Ekspert
13. februar 2004 - 21:57 #35
No problem, I'm in!
Avatar billede terry Ekspert
13. februar 2004 - 22:04 #36
I wrote in my comment 13/02-2004 17:59:40 >>> " ... If the field you are searching on is a text field then itmust be enclosed in '' :o) " :o)


Function NewFilter()
Dim sFilter As String

    sFilter = "1 "
   
    If Not fldIsEmpty(Me.Søgfirma) Then
        sFilter = sFilter & " AND Firmanavn LIKE '*" & Me.Søgfirma & "*'"
    End If
   
    If Not fldIsEmpty(Me.Søgadresse) Then
        sFilter = sFilter & " AND Adresse LIKE '*" & Me.Søgadresse & "*'"
       
    End If
   
    If Not fldIsEmpty(Me.Søgpostnr) Then
        sFilter = sFilter & " AND postnr LIKE '*" & Me.Søgpostnr & "*'"
       
    End If
   
        If Not fldIsEmpty(Me.Søgland) Then
        sFilter = sFilter & " AND land = '" & Me.Søgland & "'"
       
    End If
       
    Me.Filter = sFilter
   
    If sFilter = "1 " Then 'No filter
        Me.FilterOn = False
    Else
        Me.FilterOn = True
    End If
     
      If Me.RecordsetClone.RecordCount = 0 Then
        MsgBox "Desværre er der ingen poster som passer til din søgning"
    End If
   
   
End Function
Avatar billede terry Ekspert
13. februar 2004 - 22:04 #37
Now I'm off until tomorrow
Avatar billede woodgaard Nybegynder
13. februar 2004 - 22:16 #38
Mange Mange Mange MANGE TAK terry nu virker alt som det skal..! Det er kanon.
Terry > din løsning var lige den som jeg skulle bruge. :o) 150 point
mugs > du skal da lige have lidt point for din tid. :-)    50 point
Avatar billede woodgaard Nybegynder
14. februar 2004 - 09:44 #39
ER der ikke lige en coadmin der kan hjælpe mig engang når jeg prøver på er "selv angive point fordelingen" sker der bare ikke noget ..?
Avatar billede terry Ekspert
14. februar 2004 - 09:59 #40
If you cant share the points you can give them all to either mugs or me and then we can create a question giving the other points. You could also try contacting admin
Avatar billede woodgaard Nybegynder
14. februar 2004 - 10:27 #41
okay
Avatar billede terry Ekspert
14. februar 2004 - 10:46 #42
mange tak og god weekend. I'll place a question with points to mugs!
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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