Die Fehlermeldung kommt aber nur wenn rs.recordcount = 0 ist, also muß es doch daran liegen, oder?
Dim tmpAnlage As Long
Dim tmpJahr As Long
Dim tmpRec As New ADODB.Recordset
If cmbAnlage.Text = Empty Then
MsgBox "Erst eine Anlage auswählen!", vbInformation, "Meldung"
Exit Sub
End If
If cmbJahr.Text = Empty Then
MsgBox "Erst ein Abrechnungsjahr auswählen!", vbInformation, "Meldung"
Exit Sub
End If
myClose rs
rs.Open "Select Anlage_id from anlage where anlage='" & cmbAnlage.Text & "'"
tmpAnlage = rs.Fields(0).Value
' MsgBox tmpAnlage
tmpJahr = cmbJahr.Text
myClose rs
rs.Open "select a.anlage , s.schleusung_id as Nr, s.Berg, s.Tal,date_format(" & _
"s.Datum,'%a %d.%c.%Y') as Datum,b.Bootsart, " & _
"s.Schiffsname,date_format(s.Uhrzeit,'%H:%i') as Uhrzeit, s.betrag" & _
"as Einzelpreis, e.Eigner, s.Bootsanzahl as Anzahl," & _
"s.Bemerkungen, s.Abrechnungsjahr as Abr_Jahr, s.Mehrfachschleusung" & _
"as M_Schleusung,s.Schleusenwart,s.unsichtbar from schleusungen s," & _
" Bootsart b, Eigner e, Anlage a " & _
"Where b.bootsart_id=s.Schiffsart and e.Eigner_id=s.eigner and " & _
"s.eigner = 4 and " & _
"s.anlage_id=" & tmpAnlage & " and a.anlage_id=s.anlage_id and" & _
"s.Abrechnungsjahr=" & tmpJahr & " order by s.schleusung_id"
If rs.RecordCount > 0 Then
rs.Fields(15).Value = "Weisse Flotte Baldeney"
End If
If rs.RecordCount = 0 Then
myClose tmpRec
With tmpRec
.Fields.Append "Anlage", adVarChar, 45
.Fields.Append "unsichtbar", adVarChar, 45
.Fields.Append "Einzelpreis", adDouble
.Fields.Append "Anzahl", adInteger
.Fields.Append "Abr_Jahr", adInteger
.Open
.AddNew
.Fields("Anlage").Value = cmbAnlage.Text
!unsichtbar = "Weisse Flotte Baldeney"
!Einzelpreis = 0
!Anzahl = 0
!Abr_Jahr = cmbJahr.Text
.Update
End With
End If
CRViewer.DisplayBorder = False 'SORGT DAFUER, DASS DER BERICHT DAS GESAMTE
' FORMULAR AUSFUELLT
CRViewer.DisplayTabs = False 'BERICHT OHNE DRILL-DOWN, DAHER NICHT BENOETIGT
CRViewer.EnableDrillDown = False 'BERICHT UNTERSTUETZT KEIN DRILL-DOWN
CRViewer.EnableRefreshButton = True 'ADO-RECORDSET AENDERT SICH NICHT,
' DAHER NICHT BENOETIGT
CRViewer.DisplayGroupTree = False 'Gruppenbaumansicht
CRViewer.EnableGroupTree = False
Set crystal = New CRAXDRT.Application 'VERWALTET BERICHTE
Set report = crystal.OpenReport(App.Path & "\Daten\Abfr_ges.rpt") 'BERICHT
' OEFFNEN
' If Rs.RecordCount > 0 Then
report.DiscardSavedData 'BERICHT LEEREN, UM MIT DEN RECORDSET-DATEN ZU
' ARBEITEN
If rs.RecordCount > 0 Then
report.Database.SetDataSource rs 'BERICHT MIT RECORDSET VERKNUEPFEN
End If
If rs.RecordCount = 0 Then
report.Database.SetDataSource tmpRec
End If
CRViewer.ReportSource = report 'BETRACHTER (VIEWER) MIT BERICHT
' VERKNUEPFEN
CRViewer.ViewReport 'BERICHT ANZEIGEN
Do While CRViewer.IsBusy 'ZOOM-METHODE FUNKTIONIERT NICHT,
DoEvents 'WAEHREND BERICHT GELADEN WIRD, DAHER WARTEN
Loop 'BIS BERICHT GELADEN IST.
' End If
CRViewer.Zoom 110
rs.CancelUpdate
rs.Close es könnte höchstens noch an der Do While Schleife liegen. Der Bericht wird ja noch angezeigt und dann kommt die Fehlermeldung. Aber warum? Und vorallem, warum funktioniert es bei meinem Rechner?
Beitrag wurde zuletzt am 15.12.08 um 16:16:01 editiert. |