jwcolby
jwcolby at colbyconsulting.com
Fri May 14 07:46:38 CDT 2010
That is really pretty awesome. I would never have tried this. John W. Colby www.ColbyConsulting.com Bill Benson (vbacreations) wrote: > All, I got it to work ... with this simple example anyway. > > Thanks. > > > 'FORM > Option Compare Database > Option Explicit > Dim g_AddedControl As clsAddedControl > > Private Sub Command0_Click() > Me.subfrm.SourceObject = "" > AddControl "Subfrm" > Me.subfrm.SourceObject = "Subfrm" > Me.subfrm.Requery > Set g_AddedControl = New clsAddedControl > Set g_AddedControl.cbo = Me.subfrm.Form.Controls("cbo001") > End Sub > Private Sub Form_Load() > Me.subfrm.SourceObject = "" > End Sub > > 'CLASS > Option Compare Database > Option Explicit > Private WithEvents AddedControl As Access.ComboBox > Private Sub AddedControl_MouseDown(Button As Integer, Shift As Integer, X As > Single, Y As Single) > Debug.Print "MouseDown " & X & " " & Y > End Sub > Private Sub AddedControl_MouseMove(Button As Integer, Shift As Integer, X As > Single, Y As Single) > Debug.Print "MouseMove " & X & " " & Y > End Sub > Private Sub AddedControl_MouseUp(Button As Integer, Shift As Integer, X As > Single, Y As Single) > Debug.Print "Mouseup " & X & " " & Y > End Sub > Public Property Set cbo(ByVal IncomingControl As Control) > If TypeOf IncomingControl Is ComboBox Then > Set AddedControl = IncomingControl > End If > End Property > Public Property Get cbo() As Access.ComboBox > If Not AddedControl Is Nothing Then > Set cbo = AddedControl > End If > End Property > > > 'STANDARD: > Sub AddControl(MyForm As String) > Dim CtrlCBO As Control > Dim frm As Form > Dim InitialName As String > > On Error Resume Next > DoCmd.DeleteObject acForm, MyForm > On Error GoTo 0 > Set frm = CreateForm > frm.HasModule = True > InitialName = frm.Name > Set CtrlCBO = CreateControl(frm.Name, acComboBox, , "", "", 10, 10) > CtrlCBO.Name = "cbo001" > CtrlCBO.RowSourceType = "Table/Query" > CtrlCBO.RowSource = "Select Distinct DataField from Table1" > CtrlCBO.Tag = "DDDragFunction=MyDragFrom;DDDropFunction=MyDropTo;Combo" > CtrlCBO.OnMouseMove = "[Event Procedure]" > CtrlCBO.OnMouseUp = "[Event Procedure]" > CtrlCBO.OnMouseDown = "[Event Procedure]" > DoCmd.Save acForm, InitialName > DoCmd.Close acForm, InitialName, acSaveNo > DoCmd.TransferDatabase acImport, "Microsoft Access", CurrentDb.Name, _ > acForm, InitialName, MyForm, False > DoCmd.DeleteObject acForm, InitialName > > End Sub >