Microsoft & .NETVisual BasicBeginning databases

Beginning databases

Developer.com content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

There are many different ways in which you can access
databases. The latest, and probably best is ADO (Active X Data Objects). I prefer using
DAO, as you will see in this HowTo.

When using DAO you must remember that a table is called a
‘recordset’ and is declared in that way. This recordset exposes several methods that we
can use to manipulate a database. The Edit, AddNew and Delete methods will be used in this
HowTo for the main functions.

Before you start make sure that you have a reference to
Microsoft DAO Object Library. Do this by clicking Project, References. Scroll down until
you see Microsoft DAO 3.x Object Library and check the box next to it. Then click ok.

Add a new form (frmTest). Add four command buttons, cmdAdd,
cmdDelete, cmdGet and cmdUpdate. Add three text boxes, txtName, txtPhone and txtNotes.
Copy this code into the form:

'Private declarations for the 
'   database and recordset 
Private DB As Database 
Private RS As Recordset 

Function EditRecord(sName As String) 
  'Open the Contact table  
  Set RS = DB.OpenRecordset( _
      "SELECT * FROM Contact WHERE Name _
        = '" & sName & "'", dbOpenDynaset) 

  With RS 
    'Set it in edit more  
    .Edit 

    'Update the following fields  
    .Fields("Name").Value = txtName.Text 
    .Fields("Phone").Value = txtPhone.Text 
    .Fields("Notes").Value = txtNotes.Text 

    'Update the table  
    .Update 

    'Close it  
    .Close 
  End With 

End Function 

Function GetFromDatabase(sName As String) 
  'Open the Contact table  
  Set RS = DB.OpenRecordset("SELECT * FROM Contact WHERE Name _
           = '" & sName & "'", dbOpenDynaset) 
  'Put the data into the text boxes 
  'Use the "" & RS! so we don't get an error 
  'if one of the fields is blank  
  txtName = "" & RS!Name 
  txtPhone = "" & RS!Phone 
  txtNotes = "" & RS!Notes 
  'Close the table  
  RS.Close 
End Function 

Function AddToDatabase(sName As String, sPhone As String, sNotes As String) 

  'Open the Contact table  
  Set RS = DB.OpenRecordset("SELECT * FROM Contact", dbOpenDynaset) 

  With RS 
    'Set it to Add mode  
    .AddNew 

    'Enter the field values 
    .Fields("Name").Value = sName 
    .Fields("Phone").Value = sPhone 
    .Fields("Notes").Value = sNotes 

    'Update it  
    .Update 

    'Close it  
    .Close 

  End With 

End Function 

Function DeleteFromDatabase(sName As String) 
  'Open the Contact table  
  Set RS = DB.OpenRecordset("SELECT * FROM Contact WHERE Name _
            = '" & sName & "'", dbOpenDynaset) 

  With RS 
    'Set it to delete mode  
    .Delete 

    'Close it  
    .Close 

  End With 

End Function 
 
Private Sub cmdAdd_Click() 

  'Declare variables  
  Dim sName As String 
  Dim sPhone As String 
  Dim sNotes As String 

  'Ask for the data  
  sName = InputBox$("Please enter your name:", "Database") 
  sPhone = InputBox$("Please enter your phone number:", "Database") 
  sNotes = txtNotes 

  'Call the function  
  Call AddToDatabase(sName, sPhone, sNotes) 

End Sub 
 
Private Sub cmdDelete_Click() 
  'Declare the variable  
  Dim sName As String 

  'Ask for the data  
  sName = InputBox$("Please enter your name:", "Database") 

  'Call the function  
  Call DeleteFromDatabase(sName) 

End Sub 

Private Sub cmdGet_Click() 
  'Declare the variable  
  Dim sName As String 

  'Ask for the data  
  sName = InputBox$("Please enter your name:", "Database") 

  'Call the function  
  Call GetFromDatabase(sName) 
End Sub 
 
Private Sub cmdRecord_Click() 
  'Call the function  
  Call EditRecord(txtName) 
End Sub 
 
Private Sub Form_Load() 
  'Use the OpenDatabase function to open our database  
  Set DB = OpenDatabase(App.Path & "demo.mdb") 
End Sub 
 
Private Sub Form_Unload(Cancel As Integer) 
  'Set the variables to Nothing  
  Set RS = Nothing 
  Set DB = Nothing 
End Sub  

a href=”/net/vb/article.php/1538381″>Download the project (All the code)

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Latest Posts

Related Stories