Zum Inhalt springen

Access: Keine änderungen im Textfeld möglich, nach User anlegen und Mail generieren


Nyx_Autumn

Empfohlene Beiträge

Hi,

ich habe eine Datenbank, welche ich dazu nutze bestimmte Informationen aus einer Backend zu holen und diese dann an Word weiter zu geben, damit ich daraus Vorlagen drucken kann, die dann eben durch Textmarken mit den Daten gefüllt werden. Da habe ich nun einen E-Mail- wie auch Benutzernamengenerator eingebaut.

Da die Daten nicht in die Haupttabelle dürfen – zu der wir eine Verknüpfung haben – ist in der Datenbank selbst eine Tabelle angelegt worden, die eben die weiteren Informationen aufnehmen kann. Über eine Abfrage sind beide miteinander verbunden und darauf ist ein Formular gelegt.

Nun gab es das Problem, dass die zusätzliche Tabelle die verknüpften Daten nicht beinhaltet und sie auch nicht alle aus der Haupttabelle haben soll. Also musste eine Lösung her. Hier haben wir nun ein ‚User anlegen’ Button eingebunden, der nur die PersNr übergibt an die zusätzliche Tabelle. Dies lief auch wunderbar. Ich konnte danach die Mail generieren und auch ändern.

Nun fanden wir einen Fehler und ich durfte neu anfangen. Ich hab alles genauso gemacht – da ich die Daten aus der alten Datenbank holen konnte – und eine neue aufgesetzt. Hier jedoch stellt sich ein Problem raus.

Ich kann die PersNr an die zusätzliche Datenbank übergeben. Und nur ab und an lässt er die Mail generieren. Selbst das händische eintragen geht nicht und wenn ich mal eine Mail generiert bekomme, kann ich diese nicht bearbeiten.

Code zum User anlegen:

Private Sub UserAnlegen_Click()

Dim db As DAO.Database

Dim rs As DAO.Recordset

Dim qdf As DAO.QueryDef


Set db = CurrentDb

Set qdf = db.QueryDefs("Abfrage1")

qdf.Parameters!qryPersNr = PersNr


qdf.Execute


qdf.Close: Set qdf = Nothing

Set db = Nothing


'Aktualisieren

    Me.Requery

End Sub
Die Abfrage1 schaut wie folgt aus:
INSERT INTO tbITerweitert ( PersNr )

SELECT Haupt.PersNr

FROM Haupt LEFT JOIN tbITerweitert ON Haupt.PersNr = tbITerweitert.PersNr

WHERE (((Haupt.PersNr)=[qryPersNr]));
Code zum Mail generieren:
Private Sub EmailGen_Click()

  Dim strVornamen As String

  Dim strNachname As String

MsgBox ("Mail generieren Start")


  'Vornamen auf einen Buchstaben kürzen

    strVorname = Left(Forms!fmHaupt!Vorname, 1)


MsgBox ("Vorname wurde generiert")


  Nachname8 = Replace(Forms!fmHaupt!Nachname, " ", "")

  Nachname7 = Replace(Nachname8, "-", "")

  Nachname6 = Replace(Nachname7, "ß", "ss")

  Nachname5 = Replace(Nachname6, "Ä", "Ae")

  Nachname4 = Replace(Nachname5, "ä", "ae")

  Nachname3 = Replace(Nachname4, "Ö", "Oe")

  Nachname2 = Replace(Nachname3, "ö", "oe")

  Nachname1 = Replace(Nachname2, "Ü", "Ue")

  strNachname = Replace(Nachname1, "ü", "ue")


MsgBox ("Nachname wurde generiert")


  Me.EMail = LCase(strVorname) & "." & LCase(strNachname) & "@klinikum-emden.de"


MsgBox ("Daten übergeben")


End Sub

Ich hoffe, dass mir da jemand weiterhelfen kann.

In der anderen Datenbank lief es und ich habe mir da alle Daten rausgeholt. Der Fehler, warum ich alles noch mal machen darf, liegt nicht in dem Programm selbst. Es ist lediglich eine Einstellung gemacht worden, die den Usern das Recht nimmt, sich z.B. die Spezialtasten zu aktivieren. Hier wird die Änderung zurück gesetz. Da wie aber nicht wissen, wie dies gemacht wird und es in die Datenbank rein soll, sollte ich nun eine Datenbank anpassen, die diese Einstellung drin hat.

LG Nyx

Link zu diesem Kommentar
Auf anderen Seiten teilen

Versuche mal bitte dein Problem in eine konkrete Frage zu fassen, ob es das Erzeugen der User betrifft, das Mail-Erzeugen oder das Mail bearbeiten?

Warum deklariert du im Mail-Generieren einige Variablen, andere wiederum nicht?

(Option Explicit ist schon eine ganz sinnvolle Sache.)

Warum benutzt du 8 Hilfsvariablen, statt auf einer alle Ersetzungen zu machen?

Falls du jeweils alle Umlaute ersetzen willst, bist du sicher dass replace() dieses nicht nur einmal tut?

Gruß Martin

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

erstmal vorweg. Problem wurde gelöst. Wie auch immer ich es hinbekommen habe. Was mich nun aber irritiert, sind die Fragen.

Warum deklariert du im Mail-Generieren einige Variablen, andere wiederum nicht?

Warum benutzt du 8 Hilfsvariablen, statt auf einer alle Ersetzungen zu machen?

Falls du jeweils alle Umlaute ersetzen willst, bist du sicher dass replace() dieses nicht nur einmal tut?

Gute Frage, warum hat es mein Vorgänger gemacht? Ich hab dies nur abgeschaut und übernommen. Da dies lief und auch in meinen Test klappte, hab ich daran nicht geändert.

Ich kenn mich nicht gut in VBA aus und lerne grade erst dazu. Daher schau ich mir Momentan noch einige bei meinen Vorgänger ab, den ich nur leider nicht fragen kann, da ich nur die Datenbanken habe.

Da ich mein Problem gelöst habe, kann man es nun als erledigt ansehen. Ich bin aber gerne bereit mich eines Besseren beleren zu lassen, sofern man die Muse dazu hat. :)

Vielen Dank auf jeden Fall.

Nyx

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...