'variables local to frmLookup
Dim db As Database
Dim qd As QueryDef
Dim ds As Dynaset

Sub cmdClose_Click ()
  frmLookup.Visible = False
End Sub

Sub cmdNext_Click ()
  ds.MoveNext
  If Not ds.EOF Then
    DisplayRecord
    ShowOLEPicture
    Debug.Print "Another record added"
  Else
    Debug.Print "No more records"
    frmLookup.cmdNext.Enabled = False
    ds.MovePrevious
  End If
  frmLookup.cmdPrev.Enabled = True
End Sub

Sub cmdPrev_Click ()
  'see page 383 in language reference for usage
  'of recordset.MovePrevious
  ds.MovePrevious
  'see page 48 of language reference for usage
  'of recordset.BOF property (Beginning Of File)
  If Not ds.BOF Then
    DisplayRecord
    ShowOLEPicture
    Debug.Print "Another record added"
  Else
    Debug.Print "At first record"
    frmLookup.cmdPrev.Enabled = False
    ds.MoveNext
  End If
  frmLookup.cmdNext.Enabled = True
End Sub

Sub DisplayRecord ()
  frmLookup.txtFirstName.Text = ds("FirstName")
  frmLookup.txtLastName.Text = ds("LastName")
  
  If ds("Address1") <> "" Then
    frmLookup.txtAddress1.Text = ds("Address1")
  Else
    frmLookup.txtAddress1.Text = ""
  End If
  
  If ds("Address2") <> "" Then
    frmLookup.txtAddress2.Text = ds("Address2")
  Else
    frmLookup.txtAddress2.Text = ""
  End If

  If ds("City") <> "" Then
    frmLookup.txtCity.Text = ds("City")
  Else
    frmLookup.txtCity.Text = ""
  End If
  
  If ds("State") <> "" Then
    frmLookup.txtState.Text = ds("State")
  Else
    frmLookup.txtState.Text = ""
  End If
  
  If ds("Zip") <> "" Then
    frmLookup.txtZip.Text = ds("Zip")
  Else
    frmLookup.txtZip.Text = ""
  End If
  
  If ds("Phone1") <> "" Then
    frmLookup.txtPhone1.Text = ds("Phone1")
  Else
    frmLookup.txtPhone1.Text = ""
  End If
  
  If ds("Phone2") <> "" Then
    frmLookup.txtPhone2.Text = ds("Phone2")
  Else
    frmLookup.txtPhone2.Text = ""
  End If
  
End Sub

Sub Form_Load ()
  Debug.Print "Opening database"
  Set db = OpenDatabase("C:\ROLO\ROLO20.MDB")
  Debug.Print "Opening QueryDef"
  Set qd = db.OpenQueryDef("qryLookup")

  qd![Forms!frmLookupCriteria!LastName] = frmLookupCriteria.txtLastName.Text
  qd![Forms!frmLookupCriteria!FirstName] = frmLookupCriteria.txtFirstName.Text
  
  Debug.Print "Now setting ds"
  Set ds = qd.CreateDynaset()

  ' Since we got the dynaset, it's okay to close the QueryDef now
  qd.Close
  DisplayRecord
  ShowOLEPicture
  Screen.MousePointer = 0 ' Default
  Debug.Print "First record displayed"

End Sub

Sub ShowOLEPicture ()
    Dim sCmd As String
    Dim ds As Dynaset
    
    MousePointer = 11

    'Create dynaset
    sCmd = "SELECT Picture FROM tblPeople"
    sCmd = sCmd + " WHERE (FirstName = " + """" + txtFirstName.Text + """"
    sCmd = sCmd + ") AND (LastName = " + """" + txtLastName.Text + """)"

    ' For debug only
    'txtTest.Text = ListObject.Text
    'txtSQLString = sCmd
    'MsgBox sCmd

    Set ds = db.CreateDynaset(sCmd)
    If ds.EOF Then
        MsgBox "Could not find Picture for this record!"
        ds.Close
        MousePointer = 0
        Exit Sub
    End If

    iDocumentType = 0 ' Paintbrush Picture (Paintbrush as Access)

    Call CopyFieldToAccess1xOle(ds("Picture"), OLE1)

    ds.Close
    
    MousePointer = 0

End Sub

