My apologies for thinking that you required code in vb6. Seems that you need for vba. Have a look at the sample and see if it can be incorporated into vba. There should not be a problem there. Below is the code from sample, see if it will help -
Option Explicit
'Reference MS ActiveX Data Objects Library 2.8 under references BEFORE
'running code
'This also does not cover for errors as in no text added to a textbox etc.
'You still need to trap for errors yourself.
'There is also no comments added, I assume that you know the basics around this code
'coming from C#
'If you need any info on any code, post in Daniweb and we will follow up from there.
Private Sub ClearTextboxes(frm As Form)
Dim Control As Control
For Each Control In frm.Controls
If TypeOf Control Is TextBox Then
Control.Text = ""
End If
Next Control
End Sub
Private Sub LoadData()
On Error Resume Next
'Add proper error trapping code here. The error that will most probably
'be raised will be if there is no recordset to load, in other words
'BOF or EOF = True
Dim conData As ADODB.Connection
Dim rsMachine As ADODB.Recordset
Dim rsParts As ADODB.Recordset
Dim rsDefects As ADODB.Recordset
Set conData = New ADODB.Connection
conData.Open "provider = microsoft.jet.oledb.4.0;persist security info=false;data source = " & App.Path & "\RéparationDeMachinesDansLa.mdb"
conData.CursorLocation = adUseClient
Set rsMachine = New ADODB.Recordset
Set rsParts = New ADODB.Recordset
Set rsDefects = New ADODB.Recordset
rsMachine.Open "SELECT * FROM Machines ORDER BY MachineName", conData, adOpenStatic, adLockOptimistic
rsMachine.MoveFirst
txtMachineNumber.Text = rsMachine!MachineNumber
txtMachineName.Text = rsMachine!MachineName
rsParts.Open "SELECT * FROM Parts ORDER BY PartName", conData, adOpenStatic, adLockOptimistic
rsParts.MoveFirst
txtPartNumber.Text = rsParts!PartNumber
txtPartName.Text = rsParts!PartName
txtMachineParts.Text = rsParts!MachineName
rsDefects.Open "SELECT * FROM PartDefects ORDER BY PartName", conData, adOpenStatic, adLockOptimistic
rsDefects.MoveFirst
txtPartNum.Text = rsDefects!PartNumber
txtPartNames.Text = rsDefects!PartName
Def1.Text = rsDefects!Defect1
Def2.Text = rsDefects!Defect2
Def3.Text = rsDefects!Defect3
Def4.Text = rsDefects!Defect4
Def5.Text = rsDefects!Defect5
rsMachine.Close
rsParts.Close
rsDefects.Close
conData.Close
End Sub
Private Sub MoveNextData()
On Error Resume Next
'Add proper error trapping code here. The error that will most probably
'be raised will be if there is no recordset to load, in other words
'BOF or EOF = True
Dim conData As ADODB.Connection
Dim rsMachine As ADODB.Recordset
Dim rsParts As ADODB.Recordset
Dim rsDefects As ADODB.Recordset
Set conData = New ADODB.Connection
conData.Open "provider = microsoft.jet.oledb.4.0;persist security info=false;data source = " & App.Path & "\RéparationDeMachinesDansLa.mdb"
conData.CursorLocation = adUseClient
Set rsMachine = New ADODB.Recordset
Set rsParts = New ADODB.Recordset
Set rsDefects = New ADODB.Recordset
rsMachine.Open "SELECT * FROM Machines ORDER BY MachineName", conData, adOpenStatic, adLockOptimistic
rsMachine.MoveNext
txtMachineNumber.Text = rsMachine!MachineNumber
txtMachineName.Text = rsMachine!MachineName
rsParts.Open "SELECT * FROM Parts ORDER BY PartName", conData, adOpenStatic, adLockOptimistic
rsParts.MoveNext
txtPartNumber.Text = rsParts!PartNumber
txtPartName.Text = rsParts!PartName
txtMachineParts.Text = rsParts!MachineName
rsDefects.Open "SELECT * FROM PartDefects ORDER BY PartName", conData, adOpenStatic, adLockOptimistic
rsDefects.MoveNext
txtPartNum.Text = rsDefects!PartNumber
txtPartNames.Text = rsDefects!PartName
Def1.Text = rsDefects!Defect1
Def2.Text = rsDefects!Defect2
Def3.Text = rsDefects!Defect3
Def4.Text = rsDefects!Defect4
Def5.Text = rsDefects!Defect5
rsMachine.Close
rsParts.Close
rsDefects.Close
conData.Close
End Sub
Private Sub LoadMachine()
Dim conData As ADODB.Connection
Dim rsData As ADODB.Recordset
cmbMachine.Clear
Set conData = New ADODB.Connection
conData.Open "provider = microsoft.jet.oledb.4.0;persist security info=false;data source = " & App.Path & "\RéparationDeMachinesDansLa.mdb"
conData.CursorLocation = adUseClient
Set rsData = New ADODB.Recordset
rsData.Open "SELECT MachineName FROM Machines ORDER BY MachineName", conData, adOpenStatic, adLockOptimistic
If rsData.BOF = True Or rsData.EOF = True Then
'add code here
Else
Do While rsData.EOF = False
cmbMachine.AddItem rsData!MachineName
rsData.MoveNext
Loop
End If
rsData.Close
conData.Close
End Sub
Private Sub LoadParts()
Dim conData As ADODB.Connection
Dim rsData As ADODB.Recordset
Dim strData As String
strData = cmbMachine.Text
cmbMachine.Clear
Set conData = New ADODB.Connection
conData.Open "provider = microsoft.jet.oledb.4.0;persist security info=false;data source = " & App.Path & "\RéparationDeMachinesDansLa.mdb"
conData.CursorLocation = adUseClient
Set rsData = New ADODB.Recordset
rsData.Open "SELECT MachineName, PartName FROM Parts WHERE MachineName =" & "'" & strData & "'", conData, adOpenStatic, adLockOptimistic
If rsData.BOF = True Or rsData.EOF = True Then
'add code here
Else
Do While rsData.EOF = False
cmbParts.AddItem rsData!PartName
rsData.MoveNext
Loop
End If
rsData.Close
conData.Close
End Sub
Private Sub LoadListbox()
Dim conData As ADODB.Connection
Dim rsData As ADODB.Recordset
Dim strData As String
strData = cmbParts.Text
cmbParts.Clear
Set conData = New ADODB.Connection
conData.Open "provider = microsoft.jet.oledb.4.0;persist security info=false;data source = " & App.Path & "\RéparationDeMachinesDansLa.mdb"
conData.CursorLocation = adUseClient
Set rsData = New ADODB.Recordset
rsData.Open "SELECT * FROM PartDefects WHERE PartName =" & "'" & strData & "'", conData, adOpenStatic, adLockOptimistic
If rsData.BOF = True Or rsData.EOF = True Then
'add code here
Else
Do While rsData.EOF = False
List1.AddItem rsData!PartName & ", Defects = " _
& rsData!Defect1 & ", " _
& rsData!Defect2 & ", " _
& rsData!Defect3 & ", " _
& rsData!Defect4 & ", " _
& rsData!Defect5 & "--->>>"
rsData.MoveNext
Loop
End If
rsData.Close
conData.Close
End Sub
Private Sub SaveMachineData()
Dim conData As ADODB.Connection
Dim rsData As ADODB.Recordset
Set conData = New ADODB.Connection
conData.Open "provider = microsoft.jet.oledb.4.0;persist security info=false;data source = " & App.Path & "\RéparationDeMachinesDansLa.mdb"
conData.CursorLocation = adUseClient
Set rsData = New ADODB.Recordset
rsData.Open "SELECT MachineNumber, MachineName FROM Machines ORDER BY MachineName", conData, adOpenStatic, adLockOptimistic
rsData.AddNew
rsData!MachineNumber = txtMachineNumber.Text
rsData!MachineName = txtMachineName.Text
rsData.Update
rsData.Close
conData.Close
End Sub
Private Sub EditMachineData()
Dim conData As ADODB.Connection
Dim rsData As ADODB.Recordset
Set conData = New ADODB.Connection
conData.Open "provider = microsoft.jet.oledb.4.0;persist security info=false;data source = " & App.Path & "\RéparationDeMachinesDansLa.mdb"
conData.CursorLocation = adUseClient
Set rsData = New ADODB.Recordset
rsData.Open "SELECT MachineNumber, MachineName FROM Machines ORDER BY MachineName", conData, adOpenStatic, adLockOptimistic
rsData!MachineNumber = txtMachineNumber.Text
rsData!MachineName = txtMachineName.Text
rsData.Update
rsData.Close
conData.Close
End Sub
Private Sub SavePartsData()
Dim conData As ADODB.Connection
Dim rsData As ADODB.Recordset
Set conData = New ADODB.Connection
conData.Open "provider = microsoft.jet.oledb.4.0;persist security info=false;data source = " & App.Path & "\RéparationDeMachinesDansLa.mdb"
conData.CursorLocation = adUseClient
Set rsData = New ADODB.Recordset
rsData.Open "SELECT PartNumber, PartName, MachineName FROM Parts ORDER BY PartName", conData, adOpenStatic, adLockOptimistic
rsData.AddNew
rsData!PartNumber = txtPartNumber.Text
rsData!PartName = txtPartName.Text
rsData!MachineName = txtMachineParts.Text
rsData.Update
rsData.Close
conData.Close
End Sub
Private Sub EditPartsData()
Dim conData As ADODB.Connection
Dim rsData As ADODB.Recordset
Set conData = New ADODB.Connection
conData.Open "provider = microsoft.jet.oledb.4.0;persist security info=false;data source = " & App.Path & "\RéparationDeMachinesDansLa.mdb"
conData.CursorLocation = adUseClient
Set rsData = New ADODB.Recordset
rsData.Open "SELECT PartNumber, PartName, MachineName FROM Parts ORDER BY PartName", conData, adOpenStatic, adLockOptimistic
rsData!PartNumber = txtPartNumber.Text
rsData!PartName = txtPartName.Text
rsData!MachineName = txtMachineParts.Text
rsData.Update
rsData.Close
conData.Close
End Sub
Private Sub SaveDefectsData()
Dim conData As ADODB.Connection
Dim rsData As ADODB.Recordset
Set conData = New ADODB.Connection
conData.Open "provider = microsoft.jet.oledb.4.0;persist security info=false;data source = " & App.Path & "\RéparationDeMachinesDansLa.mdb"
conData.CursorLocation = adUseClient
Set rsData = New ADODB.Recordset
rsData.Open "SELECT * FROM PartDefects ORDER BY PartName", conData, adOpenStatic, adLockOptimistic
rsData.AddNew
rsData!PartNumber = txtPartNum.Text
rsData!PartName = txtPartNames.Text
rsData!Defect1 = Def1.Text
rsData!Defect2 = Def2.Text
rsData!Defect3 = Def3.Text '
rsData!Defect4 = Def4.Text
rsData!Defect5 = Def5.Text
rsData.Update
rsData.Close
conData.Close
End Sub
Private Sub EditDefectsData()
Dim conData As ADODB.Connection
Dim rsData As ADODB.Recordset
Set conData = New ADODB.Connection
conData.Open "provider = microsoft.jet.oledb.4.0;persist security info=false;data source = " & App.Path & "\RéparationDeMachinesDansLa.mdb"
conData.CursorLocation = adUseClient
Set rsData = New ADODB.Recordset
rsData.Open "SELECT * FROM PartDefects ORDER BY PartName", conData, adOpenStatic, adLockOptimistic
rsData!PartNumber = txtPartNum.Text
rsData!PartName = txtPartNames.Text
rsData!Defect1 = Def1.Text
rsData!Defect2 = Def2.Text
rsData!Defect3 = Def3.Text '
rsData!Defect4 = Def4.Text
rsData!Defect5 = Def5.Text
rsData.Update
rsData.Close
conData.Close
End Sub
Private Sub cmbMachine_Click()
Call LoadParts
cmbParts.Visible = True
End Sub
Private Sub cmbParts_Click()
Call LoadListbox
End Sub
Private Sub Command1_Click()
fraAddNew.Visible = True
End Sub
Private Sub Command10_Click()
Call SavePartsData
Call ClearTextboxes(Me)
fraParts.Visible = False
End Sub
Private Sub Command11_Click()
Call SaveDefectsData
Call ClearTextboxes(Me)
fraDefects.Visible = False
End Sub
Private Sub Command13_Click()
fraParts.Visible = True
fraEdit.Visible = False
End Sub
Private Sub Command14_Click()
fraMachine.Visible = True
fraEdit.Visible = False
End Sub
Private Sub Command15_Click()
Call MoveNextData
End Sub
Private Sub Command16_Click()
Call MoveNextData
End Sub
Private Sub Command17_Click()
Call MoveNextData
End Sub
Private Sub Command18_Click()
Unload Me
frmView.Show 1
End Sub
Private Sub Command19_Click()
Dim Form As Form
For Each Form In Forms
Unload Form
Set Form = Nothing
Next Form
End Sub
Private Sub Command2_Click()
fraMachine.Visible = True
fraAddNew.Visible = False
End Sub
Private Sub Command20_Click()
'First select a machine from cmbMachines
cmbMachine.Visible = True
Call LoadMachine
End Sub
Private Sub Command3_Click()
fraParts.Visible = True
fraAddNew.Visible = False
End Sub
Private Sub Command4_Click()
fraDefects.Visible = True
fraAddNew.Visible = False
End Sub
Private Sub Command5_Click()
Call SaveMachineData
Call ClearTextboxes(Me)
fraMachine.Visible = False
End Sub
Private Sub Command7_Click()
fraEdit.Visible = True
Call LoadData
End Sub
Private Sub Command8_Click()
fraDefects.Visible = True
fraEdit.Visible = False
End Sub