collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 63
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 2
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13664
  • stats Beiträge insgesamt: 61726
  • stats Themen insgesamt: 8419
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Per VBA Code in eine in beziehungstehende Tabelle Werte einfügen  (Gelesen 448 mal)

Offline Robby3004

  • Newbie
  • Beiträge: 9
Hallo liebe Community,

nach edm ich jetzt schon seit 2 Tage immer wieder über neue Fehlermeldung stolpere, hoffe ich hier kann mir einer helfen. Ich habe 2 Tabellen (Mitarbeiter, Gespräche). Zudem habe ich ein Formular. In diesem Formular ist ein Kombifeld, welches es mir ermöglicht aus der Tabelle "Mitarbeiter" den betreffenden zu finden. Wenn ich den MA ausgewählt habe, werden Personalnummer, Vorname und Nachname und 3 Textboxen innerhalb des Formulars übergeben. Das funktioniert auch. Darunter liegen dann noch 2 Textboxen /txtthema, txtInhalt). Diese werden jetzt manuell befüllt. Zum Schluss gibt es einen Button, der nach Klick die gesamten Daten in die Tabelle Gespräche übertragen soll. Die Tabelle MA steht mit der Tabelle Gespräche in 1:n Beziehung, genauer gesagt die PersNummern. Hintergrund ist, dass ich zukünftig MA Gespräche protokollieren will. Zudem habe ich später auch die Möglichkeit zu schauen ob es schon einmal ähnliche Themen gab. Also jeder MA kann mehrere Gespräche haben und diese sollen protokolliert werden.

Zu meinem Problem: Ich habe es jetzt schon mit dem Makro Neuen Datensatz anfügen probiert. Dann mit einer SQL Anweisung Insert Into und zu guter letzt mit einem RecordSet. Alles war ohne Erfolg und ich komme nicht weiter. Ich bleibe auf jedenfall bei der Fehlermeldung "Datentyp-Konvertierungsproblem" hängen.

Ich habe die Beispieldatei einmal angehangen. Vielen Dank
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6691
Hallo,
vorab, die Beispieldb kann ich mir nicht ansehen, ich habe nur Access2003 und benötige eine MDB.
Kannst Du mal einfach ein Bild des Beziehungsfensters zeigen ?
Zitat
Ich habe es jetzt schon mit dem Makro Neuen Datensatz anfügen probiert. Dann mit einer SQL Anweisung Insert Into und zu guter letzt mit einem RecordSet.
Du brauchst gar nix von den 3 Sachen. Mit gebundenen Formularen geht das alles automatisch. Außerdem wird in die Gesprächstabelle nur der Primärschlüssel des Mitarbeiters als Fremdschlüssel gespeichert. Personalnummer, Nachname und Vorname kommen nicht in die Gesprächstabelle. Ist die Personalnummer auch Primärschlüssel ? Wenn Personalnummer der PK ist, welcher Datentyp ist das ?

Mit einem Hauptformular (Mitarbeiter) und einem über die Schlüsselfelder verknüpften Unterformular (Gespräche) kannst Du jetzt im Ufo die Gespräche direkt erfassen.
Das Fremdschlüsselfeld wird automatisch gefüllt.
Da muss nichts programmiert werden, nur einige Zeilen im Hafo zur Suche des MA's.


Gruß
Klaus
 

Offline Lachtaube

  • Access-Meister
  • ***
  • Beiträge: 663
Ich habe das Beispiel in's Access 2003-Format gebracht.
Grüße von der (⌒▽⌒)
 


Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6691
Hallo,
und anbei noch die Version mit einem Unterformular.
Gruß
Klaus
 

Offline Robby3004

  • Newbie
  • Beiträge: 9
Hallo Klaus,

vielen Dank zunächst für deine Mühe. Im Grunde ist die Version mit dem Unterformular genau das was ich brauch. Wäre es denn auch möglich in einem Formular nach dem MA zu suchen und dann per Button das Formular Gespräch erfassen zu öffnen. Dann das Gespräch erfassen und durch klick auf einen Button speichern wird gespeichert und die Form wieder geschlossen?

Und noch eine Frage zum Kombi-Feld. Brauche ich die zwei Kombifelder zum Suchen des MA?

« Letzte Änderung: Mai 25, 2017, 21:33:52 von Robby3004 »
 

Online DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22963
Hallo,

versteh ich nicht... Du kannst doch im Form nach der Person suchen (oben stehendes Kombi).


Welche zwei Kombis meinst Du?   Es gibt nur eins bei der Version von Klaus.

Extra speichern brauchst Du nicht. Das geschieht, wenn das Form geschlossen wird.  Das Schließen selber kannst Du über einen Button realisieren.

Offline Robby3004

  • Newbie
  • Beiträge: 9
Hallo DF6GL,

ja zu den Kombis. Ich war da noch in der ersten Version. Allerdings bei der mit dem Unterformular habe ich das Problem wenn ich einen MA auswähle der noch keinen Eintrag hat geht der Button "Gespräch erfassen" nicht. Wenn ein MA einen Eintrag hat wird der alte angezeigt. Kann man eine Art zurücksetzen einbauen? Also eine Funktion die nach Klick dann die Felder leert und vor allem nicht den alten Eintrag anzeigt. Später werde ich noch eine Abfrage einbauen die es dann möglich macht ein Bericht zu erstellen. Soweit war ich in einer anderen ähnlichen Anwendung schon, doch dann habe ich gemerkt, wenn ich ein MA gerade erfasst habe, dann auf den einbauten Button drucken gehe fragt er die vorgegebenen Parameter ab. Aber beim nächsten MA schon nicht mehr und er druckt das Gespräch vom MA davor nochmal. In dem Fall muss doch die Abfrage aktualisiert werden, oder?
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6691
Hallo,
Zitat
wenn ich einen MA auswähle der noch keinen Eintrag hat geht der Button "Gespräch erfassen" nicht.
Da kann man einfach per VBA das Datum eintragen.
Zitat
Also eine Funktion die nach Klick dann die Felder leert und vor allem nicht den alten Eintrag anzeigt.
Bei einem gebundenen Formular muss man keine Felder leeren, ein neuer Datensatz ist automatisch leer.
Warum willst Du nicht den alten Eintrag anzeigen. Es kann doch vorteilhaft sein, im Formular mal nachsehen zu können was schon mal war. Da baut man sich noch Buttons ein zum vor und zurück blättern.

Leicht geänderte DB anbei, ich habe das mit dem automatischen Datumseintrag mal eingebaut.

Du solltest Dich dringend mal mit den Grundlagen zu Access beschäftigen. Vor allen Dingen scheint Dir die Funktionsweise gebundener Formulare unbekannt bzw. unklar zu sein.

Das mit dem Drucken kommt später, eins nach dem anderen.
Was soll denn der Bericht anzeigen ?
Gruß
Klaus
 

Offline Robby3004

  • Newbie
  • Beiträge: 9
Hallo MzKlMu,

vielen Dank für deine Unterstützung. So wie es jetzt ist ist es schon mal super. Und ja ich muss mich tiefer in Access einarbeiten. Aber da bin ich dran. Zwei Abfragen habe ich mir auch gerade erstellt aus der ich dann mein Bericht erstelle. Der Bericht wird von mir so gestaltet, dass es nachher ein Papierformular (Gesprächsprotokoll) entspricht. Hier war nur mein Problem, wenn ich einen MA gerade erfasst habe und dann auf drucken ging, war alles gut. Dann habe ich Access nicht beendet und wieder neu gestartet, sondern direkt das nächste Gespräch erfasst und bin wieder auf drucken gegangen. Jetzt allerdings hat er den vorherigen Datensatz genommen und gedruckt.