Option Compare Database
Dim remoteConnection As New ADODB.Connection
Dim rsEmployees As New ADODB.Recordset
Public Sub SetRecordset()
Dim x As Integer
Dim i As Integer
Dim Nim As Integer
Dim sql As String
'DoCmd.GoToRecord , , AcNewRecord
On Error GoTo DbError
sql = "select * from Employees"
rsEmployees.CursorType = adOpenKeyset
rsEmployees.LockType = adLockReadOnly
rsEmployees.Open sql, remoteConnection, _
, , adCmdText
'rsEmployees.MoveNext
If rsEmployees.RecordCount > 0 Then
x = 0
'Do While x < rsEmployees.RecordCount
Do Until rsEmployees.EOF = True
Me.txtID = rsEmployees!ID
Me.txtCompany = rsEmployees!Company
Me.txtFirstName = rsEmployees.Fields.Item("First Name")
Me.txtLastName = rsEmployees.Fields.Item("Last Name")
Me.txtEmail = rsEmployees.Fields.Item("E-Mail Address")
Me.txtJobTitle = rsEmployees.Fields.Item("Job Title")
Me.txtBusinessPhone = rsEmployees.Fields.Item("Business Phone")
Me.txtHomePhone = rsEmployees.Fields.Item("Home Phone")
Me.txtMobilePhone = rsEmployees.Fields.Item("Mobile Phone")
Me.txtFaxNumber = rsEmployees.Fields.Item("Fax Number")
Me.txtAddress = rsEmployees!Address
Me.txtCity = rsEmployees!City
Me.txtStateProvince = rsEmployees.Fields.Item("State/Province")
Me.txtZipPostCode = rsEmployees.Fields.Item("Zip/Postal Code")
Me.txtCountryRegion = rsEmployees.Fields.Item("Country/Region")
Me.txtWebPage = rsEmployees.Fields.Item("Web Page")
Me.txtNotes = rsEmployees!Notes
Me.txtAttachments = rsEmployees!Attachments
DoCmd.GoToRecord , , acNewRec
rsEmployees.MoveNext
Nim = Val(Me.txtID)
x = x + 1
txtRecordCount.Value = rsEmployees.RecordCount
MsgBox "ID Number is " & Nim
Loop
End If
Exit Sub
DbError:
MsgBox "There was an error retrieving information " & _
"from the database." _
& Err.Number & ", " & Err.Description
End Sub
Private Sub cmdAdd_Click()
Dim sql As String
Dim rsAdd As New ADODB.Recordset
On Error GoTo DbError
'Assign updatable cursor and lock type properties.
rsAdd.CursorType = adOpenDynamic
rsAdd.LockType = adLockOptimistic
'Open the Recordset object.
rsAdd.Open "Employees", remoteConnection, , , adCmdTable
'Add the record based on input from the user
'(except for the AutoNumber primary key field).
With rsAdd
.AddNew
.Fields.Item("Company") = Me.txtCompany
.Fields.Item("First Name") = Me.txtFirstName
.Fields.Item("Last Name") = Me.txtLastName
.Fields.Item("E-Mail Address") = Me.txtEmail
.Fields.Item("Job Title") = Me.txtJobTitle
.Fields.Item("Business Phone") = Me.txtBusinessPhone
.Fields.Item("Home Phone") = Me.txtHomePhone
.Fields.Item("Mobile Phone") = Me.txtMobilePhone
.Fields.Item("Fax Number") = Me.txtFaxNumber
.Fields.Item("Address") = Me.txtAddress
.Fields.Item("City") = Me.txtCity
.Fields.Item("State/Province") = Me.txtStateProvince
.Fields.Item("Zip/Postal Code") = Me.txtZipPostCode
.Fields.Item("Country/Region") = Me.txtCountryRegion
.Fields.Item("Web Page") = Me.txtWebPage
.Fields.Item("Notes") = Me.txtNotes
.Fields.Item("Attachments") = Me.txtAttachments
.Update
.Close
End With
MsgBox "Record Added.", vbInformation
'Close the form-level Recordset object and refresh
'it to include the newly updated row.
rsEmployees.Close
SetRecordset
Exit Sub
DbError:
MsgBox "There was an error adding the record." _
& Err.Number & ", " & Err.Description
End Sub
Private Sub cmdDelete_Click()
Dim sql As String
Dim rsDelete As New ADODB.Recordset
On Error GoTo DbError
'Build dynamic SQL statement based on
'record selected by the user.
sql = "select * from Employees where ID = " & _
Val(Me.txtID.Value)
'Assign updatable cursor and lock type properties.
rsDelete.CursorType = adOpenDynamic
rsDelete.LockType = adLockOptimistic
'Open the Recordset object.
rsDelete.Open sql, remoteConnection, , , adCmdText
'Don't try to delete the record, if the
'recordset did not find a row.
If rsDelete.EOF = False Then
'Update the record based on input from the user.
With rsDelete
.Delete
.Update
.Close
End With
End If
MsgBox "Record deleted.", vbInformation
'Close the form-level Recordset object and refresh
'it to include the newly updated row.
rsEmployees.Close
SetRecordset
Exit Sub
DbError:
MsgBox "There was an error deleting the record." _
& Err.Number & ", " & Err.Description
End Sub
Private Sub cmdMoveFirst_Click()
On Error GoTo DbError
'Move to the first record in the result set.
rsEmployees.MoveFirst
Me.txtID = rsEmployees!ID
Me.txtCompany = rsEmployees!Company
Me.txtFirstName = rsEmployees.Fields.Item("First Name")
Me.txtLastName = rsEmployees.Fields.Item("Last Name")
Me.txtEmail = rsEmployees.Fields.Item("E-Mail Address")
Me.txtJobTitle = rsEmployees.Fields.Item("Job Title")
Me.txtBusinessPhone = rsEmployees.Fields.Item("Business Phone")
Me.txtHomePhone = rsEmployees.Fields.Item("Home Phone")
Me.txtMobilePhone = rsEmployees.Fields.Item("Mobile Phone")
Me.txtFaxNumber = rsEmployees.Fields.Item("Fax Number")
Me.txtAddress = rsEmployees!Address
Me.txtCity = rsEmployees!City
Me.txtStateProvince = rsEmployees.Fields.Item("State/Province")
Me.txtZipPostCode = rsEmployees.Fields.Item("Zip/Postal Code")
Me.txtCountryRegion = rsEmployees.Fields.Item("Country/Region")
Me.txtWebPage = rsEmployees.Fields.Item("Web Page")
Me.txtNotes = rsEmployees!Notes
Me.txtAttachments = rsEmployees!Attachments
Exit Sub
DbError:
MsgBox "There was an error retrieving information " & _
"from the database." _
& Err.Number & ", " & Err.Description
End Sub
Private Sub cmdMoveLast_Click()
'rst.Fields("[FVH PLAN]")
On Error GoTo DbError
'Move to the last record in the result set.
If rsEmployees.AbsolutePosition > 1 Then
rsEmployees.MoveLast
Me.txtID = rsEmployees!ID
Me.txtCompany = rsEmployees!Company
Me.txtFirstName = rsEmployees.Fields.Item("[First Name]")
Me.txtLastName = rsEmployees.Fields.Item("[Last Name]")
Me.txtEmail = rsEmployees.Fields.Item("E-Mail Address")
Me.txtJobTitle = rsEmployees.Fields.Item("[Job Title]")
Me.txtBusinessPhone = rsEmployees.Fields.Item("[Business Phone]")
Me.txtHomePhone = rsEmployees.Fields.Item("Home Phone")
Me.txtFaxNumber = rsEmployees.Fields.Item("Fax Number")
Me.txtMobilePhone = rsEmployees.Fields.Item("[Mobile Phone]")
Me.txtAddress = rsEmployees!Address
Me.txtCity = rsEmployees!City
Me.txtStateProvince = rsEmployees.Fields.Item("[State/Province]")
Me.txtZipPostCode = rsEmployees.Fields.Item("[Zip/Postal Code]")
Me.txtCountryRegion = rsEmployees.Fields.Item("[Country/Region]")
Me.txtWebPage = rsEmployees.Fields.Item("[Web Page]")
Me.txtNotes = rsEmployees!Note
Me.txtAttachments = rsEmployees!Attachment
'Do Until yourrecordset.EOF
'Loop
End If
DbError:
MsgBox "There was an error retrieving information " & _
"from the database." _
& Err.Number & ", " & Err.Description
End Sub
Private Sub cmdMoveNext_Click()
Dim Nim As Integer
Dim Nimmer As Integer
On Error GoTo DbError
'Move to the next record in the result set if the cursor is not
'already at the last record.
'Move to the last record in the result set.
Do Until rsEmployees.EOF = True
rsEmployees.MoveNext
Me.txtID = rsEmployees!ID
Me.txtCompany = rsEmployees!Company
Me.txtFirstName = rsEmployees.Fields.Item("[First Name]")
Me.txtLastName = rsEmployees.Fields.Item("[Last Name]")
Me.txtEmail = rsEmployees.Fields.Item("[E-Mail Address]")
Me.txtJobTitle = rsEmployees.Fields.Item("[Job Title]")
Me.txtBusinessPhone = rsEmployees.Fields.Item("[Business Phone]")
Me.txtHomePhone = rsEmployees.Fields.Item("[Home Phone]")
Me.txtFaxNumber = rsEmployees.Fields.Item("[Fax Number]")
Me.txtMobilePhone = rsEmployees.Fields.Item("[Mobile Phone]")
Me.txtAddress = rsEmployees!Address
Me.txtCity = rsEmployees!City
Me.txtStateProvince = rsEmployees.Fields.Item("State/Province]")
Me.txtZipPostCode = rsEmployees.Fields.Item("[Zip/Postal Code]")
Me.txtCountryRegion = rsEmployees!Country / Region
Me.txtWebPage = rsEmployees.Fields.Item("[Web Page]")
Me.txtNotes = rsEmployees!Note
Me.txtAttachments = rsEmployees!Attachments
Loop
Exit Sub
DbError:
MsgBox "There was an error retrieving information " & _
"from the database." _
& Err.Number & ", " & Err.Description
End Sub
Private Sub cmdMovePrevious_Click()
On Error GoTo DbError
'Move to the previous record in the result set, if the
'current record is not the first record.
If rsEmployees.AbsolutePosition > 1 Then
rsEmployees.MovePrevious
Me.txtID = rsEmployees!ID
Me.txtCompany = rsEmployees!Company
Me.txtFirstName = rsEmployees.Fields.Item("First Name")
Me.txtLastName = rsEmployees.Fields.Item("Last Name")
Me.txtEmail = rsEmployees.Fields.Item("E-Mail Address")
Me.txtJobTitle = rsEmployees.Fields.Item("Job Title")
Me.txtBusinessPhone = rsEmployees.Fields.Item("Business Phone")
Me.txtHomePhone = rsEmployees.Fields.Item("Home Phone")
Me.txtMobilePhone = rsEmployees.Fields.Item("Mobile Phone")
Me.txtFaxNumber = rsEmployees.Fields.Item("Fax Number")
Me.txtAddress = rsEmployees!Address
Me.txtCity = rsEmployees!City
Me.txtStateProvince = rsEmployees.Fields.Item("State/Province")
Me.txtZipPostCode = rsEmployees.Fields.Item("Zip/Postal Code")
Me.txtCountryRegion = rsEmployees.Fields.Item("Country/Region")
Me.txtWebPage = rsEmployees.Fields.Item("Web Page")
Me.txtNotes = rsEmployees!Notes
Me.txtAttachments = rsEmployees!Attachments
End If
Exit Sub
DbError:
MsgBox "There was an error retrieving information " & _
"from the database." _
& Err.Number & ", " & Err.Description
End Sub
Private Sub cmdUpdate_Click()
End Sub
Private Sub Form_Load()
Connect
SetRecordset
End Sub
Public Sub Disconnect()
On Error GoTo ConnectionError
rsEmployees.Close
remoteConnection.Close
Exit Sub
ConnectionError:
MsgBox "There was an error closing the database." & _
Err.Number & ", " & Err.Description
End Sub
Private Sub Connect()
On Error GoTo ConnectionError
With remoteConnection
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Open "X:\Cpt. 208\MS Access 2007 VBA ABS Beginnr\chapter10\Northwind 2007.accdb"
End With
Exit Sub
ConnectionError:
MsgBox "There was an error connecting to the database. " & _
Chr(13) & Err.Number & ", " & Err.Description
End Sub
Private Sub Form_Unload(Cancel As Integer)
Disconnect
End Sub