Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Don am März 15, 2024, 13:18:53

Titel: Frage zu Makro-Generator
Beitrag von: Don am März 15, 2024, 13:18:53
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
Titel: Re: Frage zu Makro-Generator
Beitrag von: MzKlMu am März 15, 2024, 13:37:16
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 ?
Titel: Re: Frage zu Makro-Generator
Beitrag von: Don am März 15, 2024, 14:12:48
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
Titel: Re: Frage zu Makro-Generator
Beitrag von: Köbi am März 15, 2024, 16:36:56
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
Titel: Re: Frage zu Makro-Generator
Beitrag von: Beaker s.a. am März 16, 2024, 11:42:28
Oder einfach
Private Sub DeinButton_Click()
    DoCmd.OpenForm _
        FormName:="Formular2", _
        OpenArgs:= Me.DeinFeld
End Sub
Kannst du in Formular2 auslesen mit
Me.OpenArgs
Titel: Re: Frage zu Makro-Generator
Beitrag von: Köbi am März 16, 2024, 12:24:24
@Beaker s.a.
Damit ist aber noch nichts in der Zwischenablage.
Titel: Re: Frage zu Makro-Generator
Beitrag von: Beaker s.a. am März 16, 2024, 13:34:58
Wozu auch?
Es soll doch nur ein Wert von einem Form im zweiten verfügbar sein.
Titel: Re: Frage zu Makro-Generator
Beitrag von: Köbi am März 16, 2024, 15:32:33
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.
Titel: Re: Frage zu Makro-Generator
Beitrag von: Beaker s.a. am März 16, 2024, 17:00:19
Von einer zweiten Anwendung war im OP nichts zu lesen
Zitatin einem Formular1 habe ich einen Button, der ein anderes Fomular2 aufmacht
Titel: Re: Frage zu Makro-Generator
Beitrag von: Köbi am März 16, 2024, 17:16:33
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.
Titel: Re: Frage zu Makro-Generator
Beitrag von: Beaker s.a. am März 16, 2024, 17:36:45
Doch, habe ich gelesen.
Bleibe aber bei meiner Frage, - wozu?
Soll der TS sich halt noch mal äussern.
Titel: Re: Frage zu Makro-Generator
Beitrag von: Köbi am März 16, 2024, 17:50:05
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.
Titel: Re: Frage zu Makro-Generator
Beitrag von: Don am März 18, 2024, 17:38:16
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
Titel: Re: Frage zu Makro-Generator
Beitrag von: Beaker s.a. am März 18, 2024, 18:19:52
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