/ Forside/ Teknologi / Administrative / MS-Office / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn 

Kodeord  


Reklame
Top 10 brugere
MS-Office
#NavnPoint
sion 18709
refi 14474
Klaudi 8989
Rosco40 5695
berpox 5456
dk 5398
webnoob 4919
Benjamin... 4870
o.v.n. 4637
10  EXTERMINA.. 4373
Access: Finde en post i tabel
Fra : meiland
Vist : 653 gange
250 point
Dato : 14-08-07 15:29

Hej Alle !

Jeg har en database, hvor husadresser kan optræde 1 eller flere gange. Kan man lave en søgning efter den post f.eks. "Østergade 3" hvor postnr er "1234" ???

og hvordan gør man. Jeg skal primært bruge funktionen i en inddateringsformular.

 
 
Kommentar
Fra : e.c


Dato : 14-08-07 17:12

Du kan jo lave en forespørgsel og søge efter Østergade 3 i den tabel og 1234 i postnummertabellen.

Hvis du har det hele i samme tabel så kan du måske bruge "østergade"&"1234" i tabellen hvor dette skal forekomme.
Det er snat nogle år siden, at jeg arbejdede med Access.

Kommentar
Fra : meiland


Dato : 15-08-07 15:06

Hej EC.

Tak for dit svar. Du har ret i at jeg kan finde posten ved at "filtrere" i forespørgelsen. Inddateringsformularen skal så have "forbindelse" til forespørgelsen. Det er noget indviklet, hvis det er en ikke access kyndig der arbejder.


Det må kunne gøres mere fikst !... eller.... ????

Kommentar
Fra : e.c


Dato : 15-08-07 17:06

Skal det indtastes i formularen og samtidig undgå at der tastes dubletter.

Så kan der laves auto indtastning så Østergade 3 selv dukker op eller de skrives videre til Østergade 4 (som nok har samme postnummer)

Østergade og postnummer/by bør ligge i hver sin tabel.

Årsag:
Der findes flere Østergader
Postnummer og tilhørende by skal følges ad i en tabel

Men det kommer jo an på hvor omfattende din database er.

Kommentar
Fra : meiland


Dato : 15-08-07 23:22

Hej EC.

Mit eksempel med gadenavn og postnummer er måske ikke særligt godt, men for ikke at gå for langt ind i en forklaring.... bla bla.....

Konkret sidder jeg og arbejder med en database der indeholder data for et forbrugsafgiftssystem. Hver ejendom optræder flere gange med forskellige takstgrupper, alt efter om det er spildevand, drikkevand eller renovation. Jeg ved at ud fra de 3000-5000 adresse skal jeg kun bruge ca. 300, der alle har den samme takstkode (lad os kalde den 1234).

I inddateringsformen ville det være godt hvis jeg f.eks. søgte efter ejendommen Østergade 2, at jeg kun fik vist de data jeg har på Østergade 2 med takstkode 1234, så jeg ikke selv skal vælge den rigtige.



Kommentar
Fra : Rosco40


Dato : 16-08-07 20:25

Du skal altså bruge en god søgefunktion.
Den finder du her.

http://www.makeiteasy.dk/Home.asp
Downloads

den hedder DynamiskSøgefunktion.

Siden er godtnok nede for tiden. (opdatering tror jeg)

Du kan lægge din mailadr. i et privat indlæg, så skal jeg gerne sende dig eksemplet.

Kommentar
Fra : Rosco40


Dato : 16-08-07 21:27

Du kan også gøre dette.

Lav 2 felter på din formular - Søgadresse og SøgTakstkode.
Lav en knap.

koden for denne knap.


Me.Filter = "Adresse = " & Me.Søgadresse & " AND Takstkode = " & Me.SøgTakstkode
Me.filteron = True


Kommentar
Fra : meiland


Dato : 20-08-07 10:11


Hej Rosco40 !

Tak for dine svar jeg har prøve det sidste, men får en fejl 3075, som er en syntaksfejl. Der mangler en operator i udtrykket "Forbrugsadresse = Østergade 1 and Takstkode=6550000"

Koden er her:
Private Sub Kommandoknap40_Click()
Me.Filter = "Forbrugsadresse = " & Me.SøgAdresse & " And Takstkode = " & Me.SøgTakstkode
Me.FilterOn = True
End Sub

Kommentar
Fra : Rosco40


Dato : 20-08-07 10:23

Det var en kode jeg havde liggende.
Jeg har ikke prøvet selv endnu.
Kunne du evt sende en kopi af database, evt uden data.

Jeg lægger min mail i et privat indlæg.

Kommentar
Fra : Rosco40


Dato : 20-08-07 11:23

Prøv lige denne.
Citat
Private Sub bntSøg_Click()

With CodeContextObject
DoCmd.GoToControl "Postnummer"
DoCmd.FindRecord .[søgPostnummer], acEqual, False, acDown, False, , True
DoCmd.GoToControl "Kundenavn"
DoCmd.FindRecord .[SøgNavn], acEqual, False, acDown, False, , True
'DoCmd.GoToControl "[Søgpostnr]"

End With

Exit_bntSøg_Click:
Exit Sub

Err_bntSøg_Click:
MsgTekst = "Du skal skrive noget i søgefeltet."
OK = MsgBox(MsgTekst, , "Hvad søger du")
Me.søgPostnummer.SetFocus

Resume Exit_bntSøg_Click
End Sub


Kommentar
Fra : Rosco40


Dato : 20-08-07 11:30

Denne passer til dine feltnavne.
Huak at navngive knappen bntSøg.
[KODE]Private Sub bntSøg_Click()

With CodeContextObject
DoCmd.GoToControl "Forbrugsadresse"
DoCmd.FindRecord .[søgAdresse], acEqual, False, acDown, False, , True
DoCmd.GoToControl "Takstkode"
DoCmd.FindRecord .[SøgTakstkode], acEqual, False, acDown, False, , True
DoCmd.GoToControl "[Søgadresse]"

End With

Exit_bntSøg_Click:
Exit Sub

Err_bntSøg_Click:
MsgTekst = "Du skal skrive noget i søgefeltet."
OK = MsgBox(MsgTekst, , "Hvad søger du")
Me.søgadresse.SetFocus

Resume Exit_bntSøg_Click
End Sub[/CITAT]

Kommentar
Fra : Rosco40


Dato : 20-08-07 11:33

Citat
Private Sub bntSøg_Click()

With CodeContextObject
DoCmd.GoToControl "Forbrugsadresse"
DoCmd.FindRecord .[søgAdresse], acEqual, False, acDown, False, , True
DoCmd.GoToControl "Takstkode"
DoCmd.FindRecord .[SøgTakstkode], acEqual, False, acDown, False, , True
DoCmd.GoToControl "[SøgAdresse]"

End With

Exit_bntSøg_Click:
Exit Sub

Err_bntSøg_Click:
MsgTekst = "Du skal skrive noget i søgefeltet."
OK = MsgBox(MsgTekst, , "Hvad søger du")
Me.søgadresse.SetFocus

Resume Exit_bntSøg_Click
End Sub


Kommentar
Fra : Rosco40


Dato : 20-08-07 11:35

Jeg manglede linie 2

Citat
Private Sub bntSøg_Click()
On Error GoTo Err_bntSøg_Click

With CodeContextObject
DoCmd.GoToControl "Forbrugsadresse"
DoCmd.FindRecord .[søgAdresse], acEqual, False, acDown, False, , True
DoCmd.GoToControl "Takstkode"
DoCmd.FindRecord .[SøgTakstkode], acEqual, False, acDown, False, , True
DoCmd.GoToControl "[SøgAdresse]"

End With

Exit_bntSøg_Click:
Exit Sub

Err_bntSøg_Click:
MsgTekst = "Du skal skrive noget i søgefeltet."
OK = MsgBox(MsgTekst, , "Hvad søger du")
Me.søgadresse.SetFocus

Resume Exit_bntSøg_Click
End Sub


Kommentar
Fra : Rosco40


Dato : 20-08-07 12:23

Den forrige kode virkede ikke helt korrekt.
Det gør denne.


Citat
Private Sub bntSøg_Click()

Dim sFilter As String

sFilter = "1 "

If (IsNull(Me.SøgNavn)) = False Then
sFilter = sFilter & " AND KundeNavn LIKE '" & Me.SøgNavn & "'"
End If

If (IsNull(Me.søgPostnummer)) = False Then
sFilter = sFilter & " AND Postnummer = '" & Me.søgPostnummer & "'"

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 Sub


Accepteret svar
Fra : Rosco40

Modtaget 250 point
Dato : 20-08-07 12:26

Denne passer til dine feltnavne.

Citat
Private Sub bntSøg_Click()

Dim sFilter As String

sFilter = "1 "

If (IsNull(Me.SøgTakstkode)) = False Then
sFilter = sFilter & " AND Takstkode LIKE '" & Me.SøgTakstkode & "'"
End If

If (IsNull(Me.søgAdresse)) = False Then
sFilter = sFilter & " AND Forbrugsadresse = '" & 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 Sub


Kommentar
Fra : meiland


Dato : 20-08-07 14:33

Hej Rosco40 !

Så lykkedes det . Det tog lidt tid, det jeg fik nogle fejl pga. manglende adresse, men det hjalp da jeg fjernede et overskydende S i forbrugsadressen

Det gav mig til gengæld et ekstra spørgsmål. Er det muligt at ændre søgadresse fra tekstbox til kombibox, så jeg får alle adresser med takstkode=6550000 listet op ??

Uanset om det kan lade sig gøre eller ej, er mit problem løst. (De 250 point er dine rosco40 uanset hvad) Har smidt 100 point ekstra i. For en løsning på sidste spørgsmål, vil jeg gerne give 130 point for.

Kommentar
Fra : Rosco40


Dato : 20-08-07 16:39

Jeg takker for pointene.

Har du dine data i tabelform eller enkeltformular?

Hvis du vil filtrere på den måde skulle du kigge på det eksempel jeg sendte dig, det er beregnet til det.

Kommentar
Fra : Rosco40


Dato : 20-08-07 18:14

For den søgefunktion der nu er lavet, kræver at begge felter er udfyldt.

Godkendelse af svar
Fra : meiland


Dato : 21-08-07 09:29

Tak for svaret Rosco40.

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 176898
Tips : 31928
Nyheder : 719565
Indlæg : 6404476
Brugere : 218793

Månedens bedste
Årets bedste
Sidste års bedste