Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: trebuh am April 20, 2015, 19:21:28

Titel: Von 2 getrennten Formularen auf ein Modul zugreifen
Beitrag von: trebuh am April 20, 2015, 19:21:28
Hallo Access-Gemeinde,

bräuchte mal wieder einen Tipp. Folgender Fall:

Bisher hatten 2 Formulare bei "Schaltfläche Klick" die selbe Procedur, wo unter anderem auf Textfelder (mit gleichem Namen) zugegriffen wird.

Nun habe ich diese Procedur in ein Modul gesetzt, welches ich von einem Testformular (Formular1 und Formular2) aus jeweils problemlos starten kann, sofern ich die Dim-Anweisung und den Set-Befehl entsprechend setze.
Wie muss ich es programmieren, damit es mit beiden Formularen funktioniert


Hier ein Ausschnitt:
Dim frmMeins As Form_Formular1
      'Dim frmMeins As Form_Formular2
      Dim m_aObjekt As DataObject
      Dim m_laenge_1 As Byte
      Dim m_laenge_2 As Byte
      Dim m_laenge_ost As Integer
      Dim m_laenge_nord As Integer
      Dim m_zusatz As String
      Dim m_Tgeschn As String
      Dim m_Tersetzt As String
      Dim m_Kommastelle As String
      Dim m_check_Clipboard As Boolean
      Dim m_Text As String
     
10    On Error GoTo TopMapsKoordinaten_einfuegen_Error

20    Set m_aObjekt = New DataObject
30    Set frmMeins = Forms("Formular1")
        'Set frmMeins = Forms("Formular2")
40    m_aObjekt.GetFromClipboard
       
       
50    If m_aObjekt.GetFormat(1) Then
          ' *** Da ist Text drin, in der Zwischenablage
60        m_check_Clipboard = True

70        frmMeins.text32 = Null          'Zwischenablage leeren
80        frmMeins.text32.SetFocus            'daten aus der Zwischenablage einfügen
90        frmMeins.text32.SelLength = 0
100       DoCmd.RunCommand (acCmdPaste)
       
       
110       DoCmd.RunCommand acCmdSaveRecord
120       frmMeins.text32.Requery
130       m_Text = frmMeins.text32


Ich hoffe Ihr versteht was ich meine.

Gruß trebuh

Titel: Re: Von 2 getrennten Formularen auf ein Modul zugreifen
Beitrag von: MaggieMay am April 21, 2015, 00:41:34
Hallo,

übergib das Formular als Parameter beim Aufruf der Prozedur (-> Prozedur-Deklaration anpassen!), dann brauchst du keine Deklarationen:
Dim frmMeins As Form_Formular1
      'Dim frmMeins As Form_Formular2

und Zuweisungen:
30    Set frmMeins = Forms("Formular1")
        'Set frmMeins = Forms("Formular2")

sondern kannst direkt auf das Objekt zugreifen.

PS:
Bei Prozeduren bitte auch immer den "Rahmen" mit anzeigen, also Prozedur-Deklaration und End-Befehl.
Titel: Re: Von 2 getrennten Formularen auf ein Modul zugreifen
Beitrag von: trebuh am April 21, 2015, 23:48:54
Hallo MaggieMay,
Danke für den Tipp. In meiner Testdatenbank funktioniert es tadellos.

Beim übernehmen in die richtige Datenbank habe ich jetzt aber dass Problem, daß es sich bei den beiden Formularen jeweils um Unterformulare handelt.

In der Testdatenbank hatte ich die Parameter für den Formularnamen ja jeweils wie folgt deklariert:

Function Auftrag()
m_x = "Formular1"
End Function

Function Erfassung()
m_x = "Formular2"
End Function

Wenn ich stattdessen den Namen für das Unterformular eingebe, erhalte ich eine Fehlermeldung (Kann das Formular nicht finden)
Muss ich es dann so schreiben:
m_x = Forms![Name_Hauptformular]![Name_Unterformular]

Sitze jetzt irgendwie auf der Leitung.

Gruß trebuh
Titel: Re: Von 2 getrennten Formularen auf ein Modul zugreifen
Beitrag von: MaggieMay am April 22, 2015, 00:55:06
Hi,

wenn du das Formular bzw. Unterformular als Formular-Objekt übergibst anstelle des Formalurnamens, so sollte das wohl lösbar sein.

Ohne Kenntnis der damit verbundenen Codes lassen sich leider keine konkreten Vorschläge machen.

Titel: Re: Von 2 getrennten Formularen auf ein Modul zugreifen
Beitrag von: Wurliwurm am April 22, 2015, 09:25:10
Zitat von: trebuh am April 21, 2015, 23:48:54
Sitze jetzt irgendwie auf der Leitung.

Rufe aus dem Formular die Modulroutine mit einer Objektreferenz auf das Formular auf

Call MachWas( Me )

Die Routine hat die Objektreferenz als Parameter:
Public Sub MachWas( ByRef myForm as Form)
Msgbox "Machwas wurde aufgerufen aus " & myForm.name
End Sub
Titel: Re: Von 2 getrennten Formularen auf ein Modul zugreifen
Beitrag von: trebuh am April 22, 2015, 13:22:20
Hallo MaggieMay und Wurliwurm,

mal darüber schlafen kann doch hilfreich sein;-)

Habe ins Modul gesetzt:
   Public frmMeins As Form

und Aufruf jeweils im Formular:
     Set frmMeins = Me

jetzt klappt´s

Vielen Dank für eure Hilfe:-)