Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Frage zu Makro-Generator

Begonnen von Don, März 15, 2024, 13:18:53

⏪ vorheriges - nächstes ⏩

Don

Hallo zusammen,

folgende Problemstellung: in einem Formular1 habe ich einen Button, der ein anderes Fomular2 aufmacht. Eingerichtet wurde diese über den Makro-Generator. Jetzt möchte ich den Befehl insofern erweitern, daß beim klicken des Buttons der Feldwert eines Feldes in Formular1  in die Zwischenablage kopiert wird. Geht das mit dem Makro-Generator? Wenn ja wie? Oder geht es indem man den Button über vba progammiert? Danke vorab
Don

MzKlMu

Hallo,
zu Makros wirst Du so gut wie keine Hilfe bekommen, die verwendet kaum jemand. Du solltest komplett auf VBA umsteigen.

Das mit der Zwischenablage ist auch eher ungewöhnlich. Was willst Du mit dem Wert aus der Zwischenablage dann machen ?
Gruß Klaus

Don

Hallo Klaus,

der Wert in der Zwischenabelage soll in einem CRM in die Suche rein. Wir haben leider noch mehrere Systeme laufen, es ist der pragmatische nicht der schönste Weg.

VG Don

Köbi

Hallo Don

Mit Makros kenne ich mich nicht aus. Aber folgende Ereignisprozedur beim Klicken deines Buttons hilft dir weiter
Private Sub DeinButton_Click()
    'Feld in Zwischenablage kopieren, für allfällige Weiterverwendung...
    With Me!DeinFeld
        .SetFocus
        .SelStart = 0
        .SelLength = Len(.Text)
        DoCmd.RunCommand acCmdCopy
    End With
   
    'Formular2 öffnen
    DoCmd.OpenForm ("Formular2"), acNormal
End Sub

Beaker s.a.

Oder einfach
Private Sub DeinButton_Click()
    DoCmd.OpenForm _
        FormName:="Formular2", _
        OpenArgs:= Me.DeinFeld
End Sub
Kannst du in Formular2 auslesen mit
Me.OpenArgs
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Köbi

@Beaker s.a.
Damit ist aber noch nichts in der Zwischenablage.

Beaker s.a.

Wozu auch?
Es soll doch nur ein Wert von einem Form im zweiten verfügbar sein.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Köbi

Ich verstehe das anders. Er schreibt doch

Zitatdaß beim klicken des Buttons der Feldwert eines Feldes in Formular1  in die Zwischenablage kopiert wird

und später
Zitatder Wert in der Zwischenabelage soll in einem CRM in die Suche rein. Wir haben leider noch mehrere Systeme laufen, es ist der pragmatische nicht der schönste Weg.

Beaker s.a.

Von einer zweiten Anwendung war im OP nichts zu lesen
Zitatin einem Formular1 habe ich einen Button, der ein anderes Fomular2 aufmacht
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Köbi

Ich glaube, du hast die Problemstellung nicht ganz fertig gelesen. Er wünscht als Erweiterung ausdrücklich, dass der Wert eines Feldes im Formular1 in die Zwischenablage kommt.

Beaker s.a.

Doch, habe ich gelesen.
Bleibe aber bei meiner Frage, - wozu?
Soll der TS sich halt noch mal äussern.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Köbi

Wozu?
Die Frage hat er ja schon in #2 beantwortet.

Zitatder Wert in der Zwischenabelage soll in einem CRM in die Suche rein.

Aber ich stimme mit dir überein, der TS soll sich mal dazu äussern.

Don

Hallo zusammen,
das Problem ist gelöst. Folgender Code funktioniert:

Private Sub Ansprechpartner_Firma_Click()

    Dim selectedID As Integer
   
    If Not IsNull(Me.ID_Firma) Then
        selectedID = Me.ID_Firma
   

        Me.ID_Firma.SetFocus
        DoCmd.RunCommand acCmdCopy
       

        DoCmd.OpenForm "frm_Firma_AP", , , "ID_Job = " & selectedID
    Else
        MsgBox "Bitte wählen Sie einen Datensatz aus.", vbInformation, "Information"
    End If
End Sub

Beaker s.a.

Meiner in abgewandelter Form sicher auch
Private Sub DeinButton_Click()
    If Nz(Me.ID_Firma, 0) = 0 Then
        MsgBox "Bitte wählen Sie einen Datensatz aus.", vbInformation, "Information"
'erst fragen ...
    Else
'... dann handeln
        DoCmd.OpenForm _
            FormName:="frm_Firma_AP", _
            WhereCondition:="ID_Job = " & Me.ID_Firma
End Sub
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)