VBA in Access: Geven van een messagebox als gegevens niet in tabel staan

Status
Niet open voor verdere reacties.

Yannidck

Nieuwe gebruiker
Lid geworden
2 nov 2008
Berichten
2
Hallo,

Ik probeer al enkele weken een zoekfunctie te maken met VBA in Access. Alles werkt perfect nu, op een dingetje na. Het gaat over een database met liedjes in. er zijn verschillende velden oa artist, genre, album, etc. Ik heb de functie geprogrammeerd zodat die alle liedjes van een vooraf bepaalde artist vind. deze artist word via een textvak in een formulier in gegeven. Vervolgens gaat de code in de table kijken welke liedjes er allemaal zijn van die bepaalde artist en neemt die uit de table om in een kladblok bestand te zetten (ik heb kladblok gebruikt bij gebrek aan kennis om het resultaat in word of excel te zetten).
Als het bestand gemaakt is krijgt de gebruiker een messagebox om te zeggen waar het bestand staat.

Dat gaat allemaal goed en dat werk perfect alleen kan ik artisten gebruiken die werkelijk in de table staan. Ik zou een messagebox willen krijgen als de artist ingegeven in het formulier niet in de table staat. Iemand enig idee hoe ik dat moet inpassen in onderstaande code?

Alvast bedankt!


Code:
Private Sub cmdsearch_Click()
Dim conn As ADODB.Connection
Dim rstartist As ADODB.Recordset
Dim varRst As Variant
Dim myFileSystemObject As Object
Dim myFile As Object
Dim strartist As String

   Set conn = CurrentProject.Connection
   Set rstartist = New ADODB.Recordset
   
   rstartist.Open "SELECT Artist, Songtitle FROM tblLibrary", _
      conn, adOpenForwardOnly, adLockReadOnly, adCmdText
      
    strartist = Forms!frm_SearchArtist!txtinput
    Debug.Print rstartist.Filter = "Artist = '" & strartist & "'"
    
    
   If Not rstartist.EOF Then
      varRst = rstartist.GetString(adClipString, , vbTab, vbCrLf)
      Debug.Print varRst
   End If

   Set myFileSystemObject = CreateObject("Scripting.FileSystemObject")
      Set myFile = myFileSystemObject.CreateTextFile(CurrentProject.Path & _
          "\resultSearchArtist.txt", True)
   myFile.WriteLine varRst
   myFile.Close
   
   MsgBox ("Check your documents for the file 'ResultSearchArtist.txt' for the result of your search")
   Set myFileSystemObject = Nothing
   rstartist.Close
   Set rstartist = Nothing
   conn.Close
   Set conn = Nothing
End Sub
 
Kun je geen simpele boolean in je code zetten dat op True gaat op het moment dat er iets naar het tekstbestand wordt weggeschreven?

Code:
   Dim ItemFound as Boolean
   ItemFound = False 'Standaard op false
...

   If Not rstartist.EOF Then
      varRst = rstartist.GetString(adClipString, , vbTab, vbCrLf)
      ItemFound = true 'Indien data gevonden op True
      Debug.Print varRst
   End If

...

   if ItemFound = False then
      msgbox "No results match your search criteria"
   end if
 
Dat werkt inderdaad! Precies al veel van mijn kennis verloren na het middelbaar :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan