|  
                                             
	Hi Leute, 
	  
	habe folgendes Problem in VBA: 
	Ich habe in eine Tabelle Artikel und eine verknüpfende Tabelle Lese_History, welche über die Artikelnr verknüpft sind. In der zweiten Tabelle werden gelesene Artikel mit dem Usernamen registrierter User aufgelistet. 
	Nun will ich in VBA über eine Textbox eine Anzahl an Tagen eingeben, die vom heutigen Datum zurückgerechnet werden und der Rechner soll schauen, welche Artikel, die älter als dieses Datum sind, noch ungelesen sind. Später soll ein Vergleich zwischen (ungelesenen/allen Artikel)>Konstante eine Fehlermeldung bringen. Meine Realisierung bisher: 
	Klassenmodul 
	  
	Private Sub Befehl0_Click() 
	 
	 
	Dim int_days As Integer                                                    'wieviele Tage von heute soll er zurückgehen 
	Dim dt_Heute As Date                                                       'findet das heutige Datum heraus 
	Dim dt_Pruefdatum As Date                                             'wann soll er prüfen 
	 
	int_days = Tage 
	 
	dt_Heute = Now()                                                                 'findet das heutige Datum heraus 
	dt_Pruefdatum = DateDiff("d", int_days, dt_Heute)       'zieht die eingestellten Tage vom heutigen Datum ab 
	 
	Text10 = dt_Pruefdatum 
	 
	Call Alte_Artikel1(Me, dt_Pruefdatum) 
	 
	Me.Liste14.RowSource = "" 
	Me.Liste14.RowSource = "Titel" 
	 
	Me!Liste14.Requery 
	 
	End Sub 
	  
	Standardmodul 
	  
	Sub Alte_Artikel1(frm As Form, dt_Pruefdatum As Date) 
	Dim dbs As DAO.Database 
	Dim str_SQL_2 As String 
	Dim str_SQL_3 As String 
	Dim rst_2 As DAO.Recordset 
	Dim rst_3 As DAO.Recordset 
	Dim count_2 As String 
	Dim count_3 As String 
	Const sng_Warnung As Single = 0.1 
	Dim dt_Pruefdatum1 As Date 
	Dim qdf As QueryDef 
	dt_Pruefdatum1 = dt_Pruefdatum 
	On Error Resume Next 
	Set dbs = CurrentDb 
	 
	 
	Set rst_2 = Nothing 
	str_SQL_2 = vbNullString 
	 
	str_SQL_2 = "Select [Artikel].[Titel] "                                                                                                                                                    'Versuch 1 ungelesene Artikel 
	str_SQL_2 = str_SQL_2 & "From [Artikel] left join [Lese_History] on [Artikel].[Artikelnr] = [Lese_History].[Artikelnr] " 
	str_SQL_2 = str_SQL_2 & "Where [Username] is NULL AND [Veröffentlichungsdatum] < dt_Pruefdatum1 " 
	 
	'str_SQL_2 = "Select [Artikel].[Titel] "                                                                                                                                                    'Versuch 2 ungelesene Artikel 
	'str_SQL_2 = str_SQL_2 & "From [Artikel] " 
	'str_SQL_2 = str_SQL_2 & "Where [Artikel].[Artikelnr] NOT IN (Select [Lese_History].[ArtikelNr] From [Lese_History])"    
	Set rst_2 = dbs.OpenRecordset(str_SQL_2) 
	rst_2.MoveFirst 
	rst_2.MoveLast 
	count_2 = rst_2.RecordCount 
	 
	 
	Set rst_3 = Nothing 
	str_SQL_3 = vbNullString 
	 
	str_SQL_3 = "Select [Artikel].[Titel] "                                                    'wähle alle Artikel aus 
	str_SQL_3 = str_SQL_3 & "From [Artikel] " 
	 
	Set rst_3 = dbs.OpenRecordset(str_SQL_3) 
	rst_3.MoveFirst 
	rst_3.MoveLast 
	count_3 = rst_3.RecordCount 
	  
	If count_2 / count_3 >= sng_Warnung Then 
	MsgBox ("Achtung! Der Anteil der ungelesenen Artikel ist höher als " & sng_Warnung * 100 & " Prozent der gesamten Artikel!") 
	 
	End If 
	 
	CurrentDb.QueryDefs.Delete ("Titel") 
	Set qdf = CurrentDb.CreateQueryDef("Titel", str_SQL_2) 
	  
	  
	Mein Problem ist jetzt, dass er das dt_Pruefdatum1 einfach nicht mit einbezieht. Öffnet dann immer eine Inputbox "Parameterwert eingeben: dt_Pruefdatum1". Bei Eingabe eines Datum selektiert er für str_SQL_2 dann auch die richtigen Artikel, aber die Berechnung (count2/count3....) inklusive der Messagebox spuckt er davor schon aus. 
	Hoffe ihr könnt mir weiterhelfen...Grüße! 
     |