DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

Forum: Visual Basic | Thema: VBA/ACCESS 2k - Anfänger braucht dringend Hilfe - Formular öffnen in Ereignisprozedur | Von: G. Guest ( 16.05.2003 22:53)

Hallo allerseits,

ich stricke mir gerade meine erste Datenbank mit MS-ACCESS und komme ohne VBA nicht weiter. Kann mir hier jemand die Syntax zum öffnen eines Formulars innerhalb einer Ereignisporzedur erklären.

Es geht um folgendes: Ich habe die Daten aus denen sich eine Anschrift zusammensetzt in verschiedenen Tabellen hinterlegt. In der DPLZ_Tab insb. die Deutschen Postleitzahlen, in der StrassenTab insb. die Straßennamen u.s.w. Wenn ich nun im Anschriftenformular z.Bsp. eine neue Postleitzahl eingebe, soll ACCESS erst einmal prüfen ob die schon in der DPLZ hinterlegt ist, um sie - wenn nicht - ggf. dort zuvor abzuspeichern.

Dazu gehe ich wie folgt vor:

1. Ich erstelle eine einfache Abfrage in die ich (mittels *) alle Felder der AdressTab aufnehme und klicke Anzeigen an.

2. Diese Abfrage speichere ich als Formular ab.

3. Ich klicke mit der Maus in das Textfeld des Steuerelements DPLZ und gehe im Eigenschaftsfenster auf Ereignis.

4. Dort klicke ich in die Zeile "Vor Aktualisierung" und wähle Ereignisprozedur. Dann lasse ich mir über die ... die VBA-Entwicklungsumgebung öffnen.

5. Dort würde ich folgenden Code eingeben:

Private Sub Form_BeforeInsert(Cancel As Integer)
'Oder muss es heißen: Private Sub Form_Anschrift01_BeforeInsert(...)?
'Was meint (Cancel As Integer)?

Dim Db As Database, Rcst As Recordset, SQL As String
Dim check As Integer

Set Db = CurrentDb()
SQL = "Select * from DPLZ_Tab where DPLZ = '" & Forms![Form_Anschrift01]![AdressTab.DPLZ] & "'"

Set Rcst = dbs.openrecordset(SQL)

'Verständnisfrage: muss es nicht "=Db.openrecordset()" heißen? Oder anders: was meint hier "dbs."
check = Rcst.RecordCount

If check = 0 Then '??? Hier beginnt mein Problem!!!
'(Nur) Für die Fälle, dass check = 0 ist, wünsche ich mir das Erscheinen eines Formulars zur Eingabe von 3 Datenfeldern. In diesen Eingabefelder soll ein Datensatz aus der DPLZ_Tab angezeigt werden und zwar in ausgeschriebener Textform: 1. Ortsnamen 2. Bundeslandkuerzel 3. Regierungsbezirk

'Der Datensatz der angezeigt werden soll, soll der nächstliegende zum eingegebenen sein. Mir hat einer vorgeschlagen, diese Aufgabe durch hochzählen einer Schleife zu bewältigen. Ein anderer sagte, dass dafür irgendeine "unscharfe"-SQL-Abfrage besser geeignet weil chneller wäre.

'Bei dem Hochzählvorschlag wurde die Find-Methode benutzt. Also ungefähr: Dim PLZ As String * 5; PLZ = ... (der eingegebene Wert) / Rcst.MoveFirst / Rcst.Find(...???...) / If Rcst.NoMatch = True then / PLZ = PLZ + 1 / Go to Anfang

'Dann müsste der Befehl kommen spuck das "DPLZ-Formular" aus, möglichst bereits fokusiert auf den nächstliegenden PLZ-Datensatz (die neue PLZ selbst brauch ich nicht zu sehen)

End if

'Jetzt müsste ich das DPLZ-Formular ausfüllen, um die neue PLZ in der DPLZ_Tab abzuspeichern. Ggf. würde dabei das Problem auftauchen, dass dazu auch eine Stadt eingegben werden muss, die ich noch nicht in der OrtsTab hinterlegt habe. Das wäre allerdings wohl nur eine Verschachtelung des zuvor beschriebnen Problems.

Rcst.Close
Set Db = Nothing

End Sub

6. Jetzt - so meine ich - brauche ich kein VBA mehr, dass Steuerelement sollte nun (irgendwie halt automatisch) die im Textfeld erscheinende PLZ in einen neuen AdressDatensatz eintragen.

Bitte helft mir - ich sitze mittlerweile schon eine geraume Zeit vor dem Problem und kommen einfach nicht weiter. Vielen Dank schon mal vorab!


Betreff Von Datum
Re: VBA/ACCESS 2k - Anfänger braucht dringend Hilfe -...
viel zu kompliziert - wenn du einfach nur duplikate vermeiden willst, gehst du in der entsprechenden ausgangstabelle in den entwurfsmodus. In das betreffende Feld klicken und feldeigenschaften auf...
G. Guest 12.06.2003 15:59
Re: VBA/ACCESS 2k - Anfänger braucht dringend Hilfe...
"Formularname".show<br>Ganz einfach!!!!
G. Guest 09.01.2004 11:29

Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Visual Studio 1 Magazin

© Copyright 2003 ppedv AG