PDA

Vollständige Version anzeigen : VBA Access 2003 einem Button eine Prozedur zuweisen


Eyes Only
26.03.2006, 01:07
Hallo zusammen,

ich hab ein kleines Problem in Access 2003.
Ich erstelle dynamisch ein Formular mittels VBA. In diesem Formular gibt es u.a. einen Button dem ich eine Prozedur zuweisen möchte, aber ich weiss nicht wie.

Die Prozedur soll aufgerufen werden wenn der User auf den Button klickt, aber ich schaffe es nicht die beiden zu verknüpfen. Ich weiss zwar dass der Prozedurname mit dem Anhang _Click benannt werden muss, aber es will nicht funktionieren.

Kann es evtl. daran liegen dass die Prozedur in der Klasse vom neuen Formular stehen muss ? Falls ja, wie lässt sich das realisieren ?


Ich bin für jeden Rat dankbar !



Gruss

Eyes Only

hilfsente
26.03.2006, 07:59
Hallo,

dazu ordnest du in einem Ereignis noch "[Ereignisprozedur] zu (am einfachsten Beim Öffnen")

Private Sub Form_Open(Cancel As Integer)
Me.Befehl8.OnClick = "[Ereignisprozedur]"
End Sub

Gruss Hilfsente

l4ng3w3il3
26.03.2006, 12:35
Du könntest ein Formular als Vorlage angeben.

In diesem Formular könntest du den Button schon einfügen und entsprechend mit dem Code versehen.

Eyes Only
26.03.2006, 15:23
danke für die tipps bloß noch eine Frage ( ich geb zu ich bin was VBA angeht kein Profi, ich komme mehr aus der perl welt )

hier mal ein kleines Beispiel:

dim formular as new Form
dim button as Control

set formular = CreateForm()
formular.caption = "Mein Formular"

set button = CreateControl(formular.name, ac CommandButton, 0, _
"", "start_auswertung", ....)
button.caption = "Starte Auswertung"
button.name = "btn_start"

wenn ich also mein Formular so erzeuge, wie kann ich dann so eine Form_Open Funktion erstellen ?
Schreibe ich die einfach danach ?

mir ist es schon etwas klarer als am anfang aber ich hab immer noch Probleme mit dem Bezug auf den Button.


Sry falls ich etwas schwer von Begriff sein sollte.

Großer Meister
26.03.2006, 16:08
Function FormularErstellen()
Dim formular As New Form
Dim button As Control
Dim mdl As Module, strFormOpenCode As String
Set formular = CreateForm()
formular.Caption = "Mein Formular"

Set button = CreateControl(formular.Name, acCommandButton, 0, "",
"start_auswertung")
button.Caption = "Starte Auswertung"
button.Name = "btn_start"

Set mdl = formular.Module
strFormOpenCode = "Sub Form_Open(Cancel As Integer)" _
& vbCrLf & "Beep" & vbCrLf & "End Sub"
With mdl
.InsertText strFormOpenCode
End With

DoCmd.OpenForm formular.Name

End Function

Großer Meister
26.03.2006, 16:16
ist diese Frage:
wie kann ich dann so eine Form_Open Funktion erstellen ?
damit beantwortet?

Eyes Only
26.03.2006, 18:03
thx funktioniert wunderbar ! :mrcool: