2011-01-13 5 views
0

Wir versuchen, doppelten Code in unserer Access-Datenbank zu reduzieren. Wir haben mehrere Formulare, auf denen wir die folgende Art von Code verwenden.Zugriff VBA 2007 übergibt ein Formular als Parameter

Was ich tun wollte, ist eine Unterroutine erstellen und übergeben Sie das Formular und ersetzen Sie dann das Me mit dem Objekt.

So habe ich jetzt so etwas wie dieses:

Public Sub subName(myForm as Form) 
    strSQL = "SELECT [tblClients].[ID], [tblClients].[ClientName] FROM [tblClients] ORDER BY [ClientName]" 
    myForm !cboClientName.RowSource = strSQL 
    myForm !cboClientName.BoundColumn = 2 
    myForm !cboClientName.ColumnCount = 2 
    myForm !cboClientName.ColumnWidths = "0cm ; 2 cm" 

cboClientName auf jeder Form ist, dass ich es nenne, auf. Ich rufe dann die Unterroutine mit an.

subName(Me) 

ich aber bin immer den Fehler:

Type mis match ... 13 

Was mache ich falsch? Gibt es einen besseren Weg, dies zu tun?

Antwort

1

Die

subName Me 

keine Klammern sein soll.

Weitere Informationen: http://msdn.microsoft.com/en-us/library/gg251710.aspx

+0

Können Sie mir in C# hauptsächlich Code sagen, Java & php – Sally

+2

Ich bin nicht sicher, was Sie tun wünschen mir bitte verzeihen, wenn dies offensichtlich zu Ihnen, aber wissen Sie, dass Sie kann gebundene Spalte, Anzahl und Breiten festlegen und diese Eigenschaften werden mit dem Formular gespeichert, so dass Sie nur die SQL aktualisieren müssen, wie erforderlich? – Fionnuala

Verwandte Themen