Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Ribbon und Formularfelder

Begonnen von stemo33, Februar 18, 2020, 08:13:56

⏪ vorheriges - nächstes ⏩

stemo33

Hallo,
ich versuche mich an meinem ersten selbst erstellten Ribbon und bin fast am verzweifeln. Hoffe die Frage ist nicht zu doof.
Ursprünglich hatte ich auf meinen Formular einen Button der eine 'Private Sub' ausführt. Der Datensatz wird kopiert und die Projektnummer um +1 erhöht.
Hierfür lese ich den Datensatz auf dem ich mich befinde wie folgt aus:
strSQL = "SELECT * FROM Projekte_ab WHERE ID =" & Me!ID
Versuche ich das jetzt aber mit einem Ribbon gibt es eine Fehlermeldung bei '& Me!ID'
Kann man ein Formularfeld unter Verwendung eines Ribbons nicht auslesen?
Vielleicht könnt ihr mir ja eine Starthilfe geben. Ich wäre wirklich dankbar.

Xoar

Moin, versuche mal anstatt me!id das Formular mit vollen Namen anzusprechen.

Forms!formularname!id z.B.

Grüße

Hondo

Hallo,
nutzt du zum Erstellen des Ribbons den RibbonCreator2019 oder in einer älteren Version? Ein bisschen mehr an Information wäre nicht schlecht. Wo steht dein Code genau? In einem Modul oder?
Gruß Andreas

stemo33

Danke für die Antworten
Ich nutze Access 2016 und den IDBE Ribbon Creator 2016. Diesen aber erst einmal nur in der freien Version.
Der Ribboncode wurde in ein Modul ausgelagert.
Forms!Formularname!ID funktioniert. Danke.
Jetzt muß ich nur noch einen Weg finden Daten wieder zurück in die Tabelle zu schreiben.

Nur mal so nebenbei. Ist das mit der Verifizierung nicht etwas übertrieben? Ich brauche immer mehrere Versuche bis ich meinen Post rausgeschickt bekomme.

Hondo

Das Forum ist Spamfrei, das ist dieser Authentifizierung zu verdanken.
Nach ein paar erstellten Beiträgen braucht man es aber nicht mehr.
Gruß Andreas

stemo33

Es klappt jetzt fast, aber leider updatet sich das Formular nicht.
Dieser Teil wird korrekt ausgeführt:
DoCmd.RunSQL ("INSERT INTO Projekte_ME21 (Projekt_Nummer, abteilung, Sachbearbeiter) VALUES ('" & projektnummer & "', '" & rs!abteil & "', '" & rs!Sachbearbeiter & "'  );")
Ich finde den neuen Datensatz auch in meiner Tabelle. Aber im Formular wird er erst angezeigt wenn ich es geschlossen und dann wieder geöffnet habe.

Hier mal mein gesamter Code. Ihr habt bestimmt eine Idee. Sorry, bin aber Ribbon Neuling:
Sub neuer_datensatz_1(control As IRibbonControl)

Dim projektnummer As String
Dim user As String
Dim abteilung2 As String
Dim Netzwerk As Object
Set Netzwerk = CreateObject("wscript.network")
   
Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT * FROM Sachbearbeiter WHERE G_Nr = '" & Netzwerk.UserName & "'", dbOpenDynaset)
 
projektnummer = DMax("[Projekt_Nummer]", "Projekte_ME21", "") + 1

MsgBox rs!abteil
MsgBox rs!Sachbearbeiter

DoCmd.RunSQL ("INSERT INTO Projekte_ME21 (Projekt_Nummer, abteilung, Sachbearbeiter) VALUES ('" & projektnummer & "', '" & rs!abteil & "', '" & rs!Sachbearbeiter & "'  );")

'Datensatz speichern
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
   
DoCmd.GoToRecord , , acFirst
   
End Sub

Hondo

Hallo,
und warum sollte sich das Formular updaten?
Sehe nirgends einen entsprechenden Befehl wie z.B. Forms("Formularname").Requery o.Ä.
Wo steht die Prozedur neuer_datensatz_1()? Im Formular, Modul oder was?
DoCmd.DoMenuItem ... zum Speichern sollte man bleiben lassen. Gebundene Formulare speichern automatisch, ungebundene speichert man über eine Einfüge- bzw. Aktualisierungsabfrage am besten.
Was wird in den Msgboxen ausgegeben? Der erwartete Text?
Lade doch mal deine Datenbank gezippt hier hoch, das ist viel einfacher.

Gruß Andreas

stemo33

Hallo Andreas,

danke, das hat mir schon geholfen. Forms("Formularname"). Requery hat geholfen.
Die Datenbank kann ich leider nicht hochladen. Sie ist Firmeneigentum.
Der o.g. Code steht in einem Modul und wird mittels Ribbon ausgeführt.
Der Text in den Msgboxen ist richtig. Ich hatte die nur im Code um das zu testen.

Vielen Dank, hier wird einem wirklich geholfen.