PDA

Vollständige Version anzeigen : Suchen eines Datensatzes in einem Bereich


Val
26.04.2001, 08:43
Hallo zusammen,

ich habe folgendes Problem. Ich habe eine Vertreter-Datenbank. Diese Vertreter decken ein bestimmtes Postleitzahlengebiet ab. Dieses Gebiet wird in zwei Feldern "vonPLZ" und "bisPLZ" gespeichert. Wie kann ich eine Suchmaske erstellen, in der ich eine PLZ eingeben kann und diese mir dann den richtigen Vertreter ausgibt??

Danke im voraus für Eure Hilfe.

Val

A.S.
26.04.2001, 11:15
Hallo Val,

Du erstellst ein Formular, das an Deine Vertretergebietstabelle gebunden ist, und fügst ein ungebundenes Feld "suchPLZ" hinzu.

Bei dem Ereignis "Nach Aktualisierung (AfterUpdate)" fügst Du folgende Ereignisprozedur ein:


Private Sub suchPLZ_AfterUpdate()
Me.RecordsetClone.FindFirst "[vonPLZ] <= " & Me.suchPLZ & _
" AND [bisPLZ] >= " & Me.suchPLZ
If Me.RecordsetClone.NoMatch Then
MsgBox "PLZ-Gebiet nicht gefunden!"
Else
Me.Bookmark = Me.RecordsetClone.Bookmark
End If
End Sub


In meinem Beispiel bin ich von numerisch gespeicherten Postleitzahlen (für DE reichts) ausgegangen.

HTH

Arno

Alexander Jan Peters
26.04.2001, 12:12
Hallo,

das Ganze läßt sich mit einer Parameter-Abfrage (qryParameter) lösen.

Abfrage:

SELECT tblPostleitzahlen.Vertreter FROM tblPostleitzahlen
WHERE (((tblPostleitzahlen.VonPLZ)<=[Parameter])
AND ((tblPostleitzahlen.BisPLZ)>=[Paramter]));

Aufruf in VBA (DAO):

Private Sub Button1_Click()
Dim db as Database
Dim qdf as QueryDef
Dim rst as Recordset

Set db = CurrentDB
Set qdf = db.OpenQueryDef("qryParameter")

'Setzen des Parameters
qdf![Parameter] = Me.txtSuchePLZ

Set rst = qdf.OpenRecordset()
'Jetzt hast Du Zugriff auf die Daten und kannst die Ergebnisse verwenden
If rst.EOF Or rst.BOF Then
rst.Close
db.Close
Exit Sub
Else

rst.MoveFirst
Do Until rst.EOF
Debug.Print rst![Vertreter]
rst.MoveNext
Loop

rst.Close
db.Close

End If
End Sub


MfG

A.J. Peters

<font size="1" face="Century Gothic">Moderatorenanmerkung: Überarbeitung, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurde.

Es wurden in diesem Beitrag Link(s) korrigiert.
jinx – 09.11.2003</font>