| |

VB & DatenbankenADO - kurioses Programmverhalten | |  | Autor: InKUbuS GhUL | Datum: 19.10.05 18:05 |
| Hallo zusammen.
Folgende Ausgangssituation:
Mein Programm verbindet sich zu einer Datenbank, liest alle Tabellen aus (außer die Systemtabellen), verstellt ein Tab und platziert darauf ein Datagrid.
Beim Klicken auf ein Tab wird das Datagrid gefüllt / aktualisiert.
Das funktioniert auch alles funderbar auf 7 verschiedenen Rechner (sowohl WinXP als auch WIn2k). NUR: Auf einem Rechner mit Win2000 und SP4 werden keine Daten in den Datagrids angezeigt ... leider auch keine Fehlermeldung!!!
(Programmentwicklung wird auf einem Win2000-Rechner mit SP3 vorgenommen)
Jetzt kommt der spannende Teil:
Ich habe den Source mal ein wenig modifiziert und geschaut, was passiert. Plötzlich hatte ich auf dem anderen Rechner (die Rede ist von dem, auf dem es nicht läuft), eine Fehlermeldung.
Da ich das mit On Error Goto ... abgefangen hatte, kam meine eigene Fehlermeldung. Die fand ich allerdings nicht sehr aussagekräftig. Ich konnte der Nachricht allerdings einen Fehlercode entnehmen: -2147467259
Im Internet finden sich allerdings mehrere hundert Suchergebnisse, die alle von einer anderen Fehlermeldung handeln.
Gut, also das On Error- und die zugehörige Fehlerbehandlung auskommentiert und nochmal versucht .... allerdings dann wieder ohne Fehlermeldung!!!
Ich hab dann mal Messageboxen in meinen Source gebaut und dann ausprobiert, wo es hakt. Hier erst mal der Source
Public Sub FillDatGrid(dataBasePath As String, strSQL As String, datGridIndex _
As Integer)
On Error GoTo FehlerBehandlung
Dim x As Integer
Set Cn = New ADODB.Connection
With Cn
.CursorLocation = adUseClient
.Mode = adModeShareDenyNone
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties("Data Source") = dataBasePath
.Open
End With
Set RecSet = New ADODB.Recordset
With RecSet
.ActiveConnection = Cn
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Source = strSQL
.Open
End With
Set frmMain.datGrid(datGridIndex).DataSource = RecSet
'For X = 0 To frmMain.datGrid(datGridIndex).Columns.Count - 1
'With frmMain.datGrid(datGridIndex)
' If .Columns(X).NumberFormat <> "" Then
' Debug.Print X & " ist nicht Text!"
' Else
' ' normaler Text / sonstige Datentypen
' Debug.Print X & " ist Text!"
' End If
'End With
'Debug.Print frmMain.datGrid(datGridIndex).Columns(X).NumberFormat
'Next X
Set Cn = Nothing
Set RecSet = Nothing
FehlerBehandlung:
Select Case Err.Number
Case Is = 0
'DoNothing
Case Else
MsgBox "Es ist ein Fehler aufgetreten!" & vbCrLf & vbCrLf & _
"Fehlernummer: " & Err.Number & vbCrLf & "Fehlerbeschreibung: " & _
Err.Description, vbCritical + vbApplicationModal + vbOKOnly, _
"HellDatCon - Fehler"
Err.Clear
Resume Next
End Select Der Fehler steckt in der Zeile ".Open" (nach dem "Set RecSet = New ADODB.Recordset"
Auf gut dünken habe ich ein paar DLL-Dateien ins Systemverzeichnis von Windows (auf dem "Zielsystem") kopiert und anschließen alle regestriert (MSBind.DLL und was da sonst noch so alles war)
Im Anschluss habe ich auch nochmal kontrolliert, ob die DLL-Versionen auch wirklich mit meinen Versionen übereinstimmen. Das hat auch funktioniert ... alle Versionen stimmen überein (eine Ausnahme gab es, stdole2.tlb - die war neuer)
Ich frage mich aber, warum kommt es an besagter Stelle zu einem Fehler ... das aber auch nur, wenn ich On Error Resume drin habe und nicht mehr, wenn es raus ist?!
Warum gibt es keinen Fehler durch VB oder Windows?
Warum läuft das Windows auf allen Windowsrechnern in allen Versionen ... nur auf diesem einem Win2k SP4 Rechner nicht?!
Gibt es bei SP4 irgendetwas besonderes, das man wissen sollte?!
Ich hoffe, ihr könnt mir weiterhelfen!!!! |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevOutBar 4.0 
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|