Thema Datum  Von Nutzer Rating
Antwort
Rot Problem mit Abfrage
04.09.2008 09:20:32 Juliane
NotSolved

Ansicht des Beitrags:
Von:
Juliane
Datum:
04.09.2008 09:20:32
Views:
1657
Rating: Antwort:
  Ja
Thema:
Problem mit Abfrage
Hallo

ich habe ein Problem in einem Programm-Code. Und zwar dient die Funktion zum extrahieren von Daten. Wenn allerdings ein bestimmtes Element gewählt ist, soll zunächst die Globalstrahlung in einer anderen Funktion berrechnet werden. Diese Werte stehen dann in der Tabelle "Daten". Von dort werden sie in eine Abfrage (AEX_(i)) geladen.
Das Problem ist nun, wenn die erste Station abgearbeitet ist, ist noch alles wunderbar. Wenn dann aber die Schleife wieder beginnt, mit dem Löschen der Daten aus der Tabelle "Daten", dann wird automatisch auch alles in der Abfrage "AEX_(i) gelöscht und ausserdem die Werte für Station 2 nicht nur in AEX_2 sondern zusätzlich auch in AEX_1 geschrieben, wo aber eigentlich noch die Werte von Station 1 drin stehen sollen.

Kann mir jemand sagen wie ich das Problem beheben kann? Hab leider noch nicht so viel Ahnung von VBA.

Hier ist nochmal der Code für den entsprechenden Programmteil:


Select Case KlimaElement
Case 4
i = 0
While Not t.EOF
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM [Daten];"
DoCmd.SetWarnings True
i = i + 1
Set t1 = db.OpenRecordset("Daten")
If zielaufl = 1 Then
StaLex = "Standorte Einzelherkunft_Sonnenscheindauer_TGW"
Else
StaLex = "Standorte Einzelherkunft_Sonnenscheindauer_MW"
End If
Set t3 = db.OpenRecordset(StaLex)
stid = t!id
t3.MoveFirst
t3.FindFirst "[Lfd-Nr]=" + Format(stid)
quelltabname = t3!TabName
quellspaltname = t3!FeldName
t3.Close
DoCmd.SetWarnings False
sql = "INSERT INTO Daten (Zeit, Station2) "
sql = sql + "SELECT [" + quelltabname + "].[Datum], [" + quelltabname + "].[" + quellspaltname + "] "
sql = sql + "FROM [" + quelltabname + "] "
If Status = True Then
sql = sql + "IN '" & DatenDBPfad & HomoDBName & "' "
Else
sql = sql + "IN '" & DatenDBPfad & DatenDBName & "' "
End If
sql = sql + "WHERE ((([" + quelltabname + "].[Datum]) Between #"
sql = sql + Format(Month(vondat)) & "/" & Format(Day(vondat)) & "/" & Format(Year(vondat)) & "# AND #"
sql = sql + Format(Month(bisdat)) & "/" & Format(Day(bisdat)) & "/" & Format(Year(bisdat)) & "#)) "
sql = sql + "ORDER BY [" + quelltabname + "].[Datum];"
DoCmd.RunSQL (sql)
DoCmd.SetWarnings True
Call Module_Hauptformular.Rechnung_RG(geo_breite, hoehe, zielaufl)
t1.Close
sql = "SELECT "
Select Case zielaufl 'zieldaten
Case 1 'tagesdaten
sql = sql + "DateValue([Daten].[zeit]) as datum"
Case 2 'monatsdaten
sql = sql + "Dateserial(year([Daten].[Zeit]), month([Daten].[Zeit]),1) as datum"
Case 3 'jahresdaten
sql = sql + "Dateserial(Year([Daten].[Zeit]),1,1) as datum"
End Select
sql = sql + ", " + funktion + "([Daten].[station1]) as daten"
If Anzahl Then sql = sql + ", count([Daten].[station1]) as anz"
sql = sql + " FROM [Daten]"
Select Case zielaufl
Case 1
sql = sql + " GROUP BY DateValue([Daten].[Zeit])"
Case 2
sql = sql + " GROUP BY Dateserial(year([Daten].[Zeit]), month([Daten].[Zeit]),1)"
Case 3
sql = sql + " GROUP BY Year([Daten].[Zeit])"
End Select
sql = sql + ";"
Set qdef = db.CreateQueryDef("AEX_" + Format$(i))
qdef.sql = sql
qdef.Close
FeldName(i) = t!bezeichnung
fortschritt = (i / ii) * 100
Call ändern_wartemeldung(Format$(fortschritt) + " % der Datenausgabe")
t.MoveNext
Wend

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 Problem mit Abfrage
04.09.2008 09:20:32 Juliane
NotSolved