Acess

  • #1
B

bluewalk

Mitglied
Themenersteller
Dabei seit
10.11.2003
Beiträge
19
Reaktionspunkte
0
Wer kennt sich denn einigermaßen mit Access aus?

Ich wollte mir eine DB á la der MS Nordwind für unsere Abteilung kreiren. Speziell: Patienten daten (Kundendaten) und die Ärzteadressen (Lieferanten) so zusammenfügen, daß ich wie bei der Tabelle Bestellung meine Aufnahme TAbelle habe.

Anfang hate ich zu jedem PAtienten immer schön den Arzt dazu geschrieben. Wegen der bekannten FEhlerquellen habe ich nun die Ärzteadressen in einer neuen Tabelle untergebracht.

Jetzt: Wie schaffe ich es, daß ich den entsprechenden Arzt aussuchen kann mit einem Kombiantionsfeld, welches mir dann nicht nur eine Spalte der Tabelle schreibt, sondern alle Felder, wie schon angezeigt auch niederschreibt. (Ins Formular)

Am liebsten hätte ich es so, wie im Northwind Bestellformular, wo ich die Kundenadresse (Name) aussuche, dann den Rest der Felder unten automatisch ausfüllt.

In diesem FOrmular ist ebenfalls auch noch der Verkäufer angegeben. Das habe ich schon so abändern können, daß ich nicht nur Name und Vorname, sondern auch PLZ und Adresse hinzufügen kann.
So will ich es aber nicht mit den Ärzten haben.

Also, wie funzt der Trick?
 
  • #2
Leider oder Gott sei Dank ist das ganze kein Trick sondern solides Wissen über die Regeln der Normalisierung einer Relationalen Datenbank.

Dabei hilft weder ACCESS noch sonst ein Programm, das muß man selbst wissen.

Ich habe einen interessanten Artikel aus der C'T vor einiger Zeit (1 - 2 Jarhe). Der beschäftigt sich auch mit Patientendaten und Belegungen in einem Krankenhaus und versucht anhand dieser Vorgaben die Regeln der Normalisierung zu erklären.

Wenn Du Interesse hast kann ich Dir den mal posten (per Email-Anhang).

Es gibt aber auch hier im Internet von einigen Uni's Erläuterungen zu diesen Grundlagen - und ohne die wird's wohl nix.

Gruß
Kurt Körner
 
  • #3
Hi Kurt,

danke für die Erläuterung. Sicherlich habe ich nicht ganz so fundiertes Wissen über rel. DB?s dafür beschäftige ich mich noch zu wenig damit. Aber etwas weiß ich schon ::)

Mit allem kann man sich nicht beschäftigen, mir langte bis jetzt mein MCSE und HTML. :)


Hilft mir der Artikel zu meiner Frage? Oder kannst du mir erklären, wie die Sache bei der NW-DB von MS funzt. ;)


Ich hab? da halt momentan noch ein Fehler drin, den ich leider nicht gelöst bekomme. Ich habe die Beziehung sofern schon richtig (ref. Integr. Mit aktualis.-Weiterg. Und Typ 1:n), nur sollte halt auch das Formular die genaue Datenherkunft wissen, nur die man. Eingabe hat wohl irgendwo nen Fehler, der nur mit FUNDIERTEM WISSEN gelöst werden kann. ;)


Allerdings habe ich nicht die Zeit, zuerst ein Studium zu absolvieren?
:'(

Grüße BlueWalk
 
  • #4
Hi,

Weiss nicht genau, ob ich dich recht verstehe.
Du willst einen Arzt auswählen (Kombifeld) und anschliessend soll der zugehörige Datensatz (z.B. Anschrift etc.) in ein Formular übernommen werden??

Befasse mich auch erst seit kurzem mit Access.... also bitte nicht böse sein, wenn's nicht so ganz klappt :-[

Du kannst ein Kombinationsfeld zum Suchen und aktivieren eines Datensatzes nur verwenden, wenn du ein Ereignismakro schreibst .

Erstelle auf deinem Formular mit dem Assistenten ein Kombinationsfeld und wähle im ersten Dialogfeld des Assistenten Einen Datensatz im Formular basierend auf dem im Kombinationsfeld gewählten Wert suchen. Wähle im nächsten Dialogfeld die zugrundeliegende Tabelle bzw. die verfügbaren Felder (ev. Nachname, Vorname) aus. Gib im letzten Dialogfeld als Beschriftung Datensatz suchen ein.

Zeige das Eigenschaftenfenster des eingefügten Kombifeldes an. Klicke dort auf das Einstellungsfeld der Eigenschaft Nach Aktualisierung und klicke anschliessend auf die Schaltfläche Generator (mit drei Punkten). Der VBA-Editor öffnet sich und zeigt die Ereignisprozedur Private Sub Kombinationsfeld1_AfterUpdate() (der Name korrespondiert mit dem Namen des Kombifeldes) an.

Für den Namen Datensatz suchen würde die Ereignisprozedur wie folgt aussehen:

Privat Sub DatensatzSuchen_AfterUpdate()

Dim rs as Object
Set rs = Me.Recordset.Clone
rs.FindFirst [Name der Tabelle]=-> & Me![DatensatzSuchen] & ->
Me.Bookmark = rs.Bookmark

End Sub

Ich hoffe das hilft dir weiter....

krokodog
 
  • #5
Hey Krokodog,

hört sich gut an; werde die Idee weiter verfolgen.

Um zu verstehen, was ich will, schau Dir doch mal die Beispieldatenbank Nordwindvon Microsoft in Access an.

Mich dünkt dort zwar keine Ereignisprozedur erkannt zu haben, aber Deine Idee macht sehr viel Sinn. 8)

Bluewalk
 
  • #6
Hi,

habe mir das Formular Bestellungen aus der Nordwind angesehen.
Öffne das Formular mal im Entwurfsmodus -> Rechtsklick auf das Kombifeld Kunden-Code -> beim anschliessend Klick auf Ereignis öffnet sich der Visual Basic Editor mit dem zugeörigen Code:

Private Sub KundenCode_AfterUpdate()
' Versand-Steuerelemente basierend auf dem im Kombinationsfeld KundenCode gewählten
' Wert aktualisieren.
Me!Empfänger = Me![KundenCode].Column(1)
Me!BestellungenStraße = Me!KundenStraße
Me!BestellungenOrt = Me!Kundenort
Me!BestellungenRegion = Me!Kundenregion
Me!BestellungenPostleitzahl = Me!Kundenpostleitzahl
Me!Bestimmungsland = Me!Kundenland

End Sub

Die Daten werden hier einfach den ensprechenden Textfeldern zugewiesen.
Ev. kannst du für dich enstsprechende Änderungen vornehmen ;)


krokodog
 
Thema:

Acess

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben