Thema Datum  Von Nutzer Rating
Antwort
Rot Vergleich Datum
09.01.2013 09:42:41 Tom
NotSolved
09.01.2013 11:16:14 Gast97187
NotSolved
09.01.2013 11:22:45 Gast97719
NotSolved

Ansicht des Beitrags:
Von:
Tom
Datum:
09.01.2013 09:42:41
Views:
1713
Rating: Antwort:
  Ja
Thema:
Vergleich Datum

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!


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Vergleich Datum
09.01.2013 09:42:41 Tom
NotSolved
09.01.2013 11:16:14 Gast97187
NotSolved
09.01.2013 11:22:45 Gast97719
NotSolved