Adresse übernehmen in User-Form

Hallo Leute,

Ich stehe vor folgendem Problem:
Ich habe eine Tabelle in der ich Verträge unserer Kunden erfasse.
Dies funktioniert über eine User-Form.
Der Mitarbeiter muss also alle Daten wie Kundennummer, Name, Anschrift manuell in die UserForm eingeben.

Wie bekomme ich es hin, dass Ich eine Tabelle mit Kundennummern, Name und Anschrift zur Verfügung stelle, und der User nach dem Eingeben der Kundennummer die Angaben Name und Anschrift in der Userform angezeigt bekommt ?

Ich will dem Erfasser die Eingabe ersparen und gleichzeitig Fehlerfassungen vermeiden.

Merke ! Die Vertragstabelle soll nicht der Datenpool sein, aus dem die Adresse übernommen wird !

Hat jemand einen Vorschlag ?

Gruß Christian

Hallo,

von welchem Programm sprichst Du?

„User-Form“ ist kein üblicher Ausdruck in Access.
Sollte es sich doch um Access und ein Einzelformular mit Datenherkunft zur Vertragtabelle handeln, dann könntest Du ein Kombifeld („Kundennr“) einsetzen, das seine (Kunden)Daten aus der Kundentabelle bezieht und nur(!) die Kundenr in der Vertragstabelle speichert. Alle andere Daten aus der Kombifeldliste brauchen/sollen/dürfen allenfalls lediglich im Vertragsformular angezeigt werden:

Im Steuerelementinhalt eines Textfeldes, das z. B. den Kundennamen anzeigen soll, der in der zweiten Listenspalte steht:

=[Kundennr].Column(1)

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Franz,

tschuldige, Access 2003.

Du hast natürlich Recht UserForm sagt man nicht. Formular !

Ich hab verstanden was Du meinst. Aber ich kann doch mit dem Formular nur auf eine Tabelle zugreifen oder kann ich den den im Formular angezeigten Kundensatz über eine Schatfläche auch in einer zweiten Tabelle abspeicher ? - Wenn ja wie ?

Das würde die Möglichkeit eröffnen die Kundennummer einzugeben, sich die Daten aus einer Datenvorratstabelle auf das Formular zu holen und einen neuen Datensatz in der Vertragstabelle abzuspeichern. richtig ?
Dabei darf auch ruhig die Datenredundanz Kundennummer entstehen.

Gruß Christian

Hallo,

tschuldige, Access 2003.

Du hast natürlich Recht UserForm sagt man nicht. Formular !

Ich hab verstanden was Du meinst. Aber ich kann doch mit dem
Formular nur auf eine Tabelle zugreifen oder kann ich den den
im Formular angezeigten Kundensatz über eine Schatfläche auch
in einer zweiten Tabelle abspeicher ? - Wenn ja wie ?

??? Was willst Du mit dem Formular denn überhaupt machen?

Das würde die Möglichkeit eröffnen die Kundennummer
einzugeben, sich die Daten aus einer Datenvorratstabelle

??? Datenvorratstabelle ???

auf
das Formular zu holen und einen neuen Datensatz in der
Vertragstabelle abzuspeichern. richtig ?
Dabei darf auch ruhig die Datenredundanz Kundennummer
entstehen.

??? Datenredundanz Kundennummer ???

Ich habe es so verstanden, dass Du Verträge verwalten willst.

Dazu brauchst Du eine Tabelle „tblVerträge“ mit allen Daten, die zu einem Vertrag gehören. Dazu gehört auch ein „Kunde“, der in Form seiner Kundennr (als Fremdschlüsselfeld) in tblVerträge abgelegt wird.

Die Kundennr stammt aus einer Kundentabelle „tblKunden“, die eben alle Daten zu einem Kunden speichert. Die Kundennr kann/sollte darin der Primärschlüssel sein.

Im Formular zur tblVerträge wird mittels an das Fremschlüsselfeld gebundenem Kombi die passende Kundennr (aus tblKunden) ausgewählt. Durch die Bindung des Kombis an das „Kundennr“-Feld in tblVerträge wird die Kundennr dann beim Speichern des Vertrags-Datensatzes ebenfalls mit abgelegt.

Die mehrfache Speicherung der Kundennr in verschiedenen Tabellen fällt nicht unter „Datenredundanz“… Es ist vielmehr nötig, um eine Beziehung zwischen den beiden Tabellen herzustellen.

Weitere auf dem (Vertrags-) Formular angezeigte(!) Daten des Kunden, so wie vorher erklärt, werden nicht gespeichert, sondern dienen nur als Info für den Anwender…

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Moin Moin,

Hat jemand einen Vorschlag ?

ja

Erstelle ein Hauptformular mit den Kundendaten. Auf diesem erstellst du ein UFO (Unterformular) für die Verträge.
Die Beziehung stellst du über die Kundennummer her.

D.h. bedeutet für dich: du hast zwei Tabellen, eine mit den Kundendaten und eine mit den Vertragsdaten.

Grüße aus Rostock
Wolfgang
(Netwolf)

Hallo Franz,

ich fasse nochmal zusammen.
Ich habe eine Tabelle mit Vertragsdaten. Diese Vertragsdaten erstellen über einen Bericht einen Vertrag.
Um aber einen Vertrag erstellen zukönnen muss zunächst der Kunde mit all Seinen Daten über ein Formular in die Tabelle eingegeben werden.

soweit steht alles.

Jetzt bekomme ich aber die Möglichkeit über ein Programm in unserer Firma alle Kundendaten als Text datei zur Verfügung gestellt zu bekommen.

Nun meine Idee:
Ich möchte gern diese Textdatei als eine Art Datenbank in meine access Datei importieren.

Wenn ich dann einen Vertrag erstellen will sollen die zur Zeit noch manuell einzupflegenden Felder meines Formulars die Angaben aus der Datenbank nehmen, damit ich nicht alles manuell ausfüllen muß.
Auf Klick auf den Button speichern soll aber wie bisher ein neuer Datensatz in der Vertragstabelle abgespeichert werden.

verstanden ?

Gruß Christian

Hallo,

Ich hab verstanden was Du meinst. Aber ich kann doch mit dem
Formular nur auf eine Tabelle zugreifen oder kann ich den den
im Formular angezeigten Kundensatz über eine Schatfläche auch
in einer zweiten Tabelle abspeicher ? - Wenn ja wie ?

das geht über VBA.

Hier ein Beispiel für das OnClickEvent

Dim db As Database, rst1 As Recordset
Set rst1 = db.OpenRecordset(„Name der Zieltabelle“, dbOpenDynaset)
rst1.AddNew
rst1![Name von Tabellenfeld] = Me![Name von Formularfeld]
(…)
rst1.Update
rst1.Close
Set rst1 = Nothing
db.Close
Set db = Nothing

MfG,

ujk

Hallo Franz,

ich fasse nochmal zusammen.
Ich habe eine Tabelle mit Vertragsdaten. Diese Vertragsdaten
erstellen über einen Bericht einen Vertrag.
Um aber einen Vertrag erstellen zukönnen muss zunächst der
Kunde mit all Seinen Daten über ein Formular in die Tabelle
eingegeben werden.

soweit steht alles.

befürchte, nach Lesen Deiner folgenden Ausführungen, dass mindestens hier Nacharbeitsbedarf besteht…

Jetzt bekomme ich aber die Möglichkeit über ein Programm in
unserer Firma alle Kundendaten als Text datei zur Verfügung
gestellt zu bekommen.

Das ist nun aber eine komplett andere Situation…

Nun meine Idee:
Ich möchte gern diese Textdatei als eine Art Datenbank in
meine access Datei importieren.

Ok, verknüpf die Textdatei (im Datenbankfenster/Tabellen), wodurch sie durch Access zugriffsfähig wird und übertrage die Daten mittels einer Anfügeabfrage(!) an eine zuvor passenden erstellte Kundentabelle („tblKunden“). Anstelle der Verknüpfung selber könntest Du auch die Transfertext-Methode benutzen, um die Daten in tblKunden zu importieren.

In beiden Fällen sollte dringend ein Primärschlüsselfeld in tblKunden vorhanden sein, entweder die eindeutige KDNr, so ein solches Feld in der Textdatei überhaupt vorhanden ist, oder ein Autowertfeld in der Tabelle. Hierbei müssen aber bei neuerlichem Import Maßnahmen gegen mehrfache Speicherung desselben Kunden getroffen werden. (z. B. in einfachsten Fall einen eindeutigen Index über charakteristische Felder, die einen Kunden eindeutig identifizieren können, legen (z. B. Kundenname, KundenOrt, KundenStrasse,…)

Wenn ich dann einen Vertrag erstellen will sollen die zur Zeit
noch manuell einzupflegenden Felder meines Formulars die
Angaben aus der Datenbank nehmen, damit ich nicht alles
manuell ausfüllen muß.

Siehe meinen Vorschlag bezgl. Auswahl in einem Kombifeld, das sich im Vertragsform befindet (und das nur(!) die Kdnr in der Vertragstabelle speichert)

Auf Klick auf den Button speichern soll aber wie bisher ein
neuer Datensatz in der Vertragstabelle abgespeichert werden.

das geht genau wie bisher auch.

verstanden ?

ja, und Du? :wink:

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!