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
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 ?
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
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
Oder einfach
Private Sub DeinButton_Click()
DoCmd.OpenForm _
FormName:="Formular2", _
OpenArgs:= Me.DeinFeld
End SubKannst du in Formular2 auslesen mit
Me.OpenArgs
@Beaker s.a. Damit ist aber noch nichts in der Zwischenablage.
Wozu auch?
Es soll doch nur ein Wert von einem Form im zweiten verfügbar sein.
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.
Von einer zweiten Anwendung war im OP nichts zu lesen
Zitatin einem Formular1 habe ich einen Button, der ein anderes Fomular2 aufmacht
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.
Doch, habe ich gelesen.
Bleibe aber bei meiner Frage, - wozu?
Soll der TS sich halt noch mal äussern.
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.
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
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