TBL.Fields(i)..Size
mit dieser Zeile habe ich in der Version 2003 (.mdb) die Feldgröße ermittelt.
In der Version 2016 (.accdb) ist diese Funktion nicht mehr vorhanden.
Was gibt es statt dessen?
?
Du solltest das nochmal genauer überprüfen. die Field.Size Eigenschaft gibt es unverändert weiterhin.
In dem hier gezeigten Codeschnipsel ist ein Punkt zuviel, aber das ist wahrscheinlich nur hier im Post entstanden.
Nach nochmaligem Suchen hae ich Size doch gefunden. Aber nun Steigt das Programm bei Fields. aus mit der folgenden Fehlermeldung, die er vorher nicht hatte: Methode oder Datenogjekt nicht gefunden
Grad getestet - funktioniert einwandfrei.
Wenn du deinen Fehler mittels debuggen nicht findest, einfach den zusammenhängenden Code zeigen.
Datenobjekt nicht gefunden - könnte ja auf ein anderes Problem hinweisen.
Zitat von: PeterW am März 23, 2023, 16:22:34Aber nun Steigt das Programm bei Fields. aus
Fields.Was?
Fields ist eine Collection, die selbst sehr wenige Eigenschaften hat. Häufig verwendet man Fields(x) um auf ein Field-Element in der Collection zu verweisen.
Hier ist der ganze Programmteil:
For i = 0 To MG_AnzFTB
Nam = TBL.Fields(i).NAME
FSize = TBL.Fields(i).Size
Select Case TBL.Fields(i).Type
Case 1: Typ = "Ja/Nein"
Case 2: Typ = "Byte"
Case 3: Typ = "Integer"
Case 4: Typ = "Long"
Case 5: Typ = "Währung"
Case 6: Typ = "Single"
Case 7: Typ = "double"
Case 8: Typ = "Datum"
Case 10: Typ = "Text"
Case 12: Typ = "Memo"
End Select
Das fehlt die Deklaration und die Initialisierung von TBL.
Die Anwendung der Size-Property wird außerdem nur beim Datentyp Text sinnvoll sein.
Die steht etwas weiter vorn im Code
Dieses Programm läuft in der Version 2003 (.mdb) einwandfrei. Fehlt da vielleicht ein Verweis? Ich kann aber bei einem Vergleich keinen finden.
Zitat von: PeterW am März 23, 2023, 17:50:14Fehlt da vielleicht ein Verweis?
Hast du den alten Verweis auf DAO 3.x entfernt?
Ich habe ihn nicht entfernt, aber er ist auch nicht drinnen. Sobald ich ihn reinnehmen möchte, bekomme ich eine Fehlermeldung, die mich nicht weiterbringt:
"Name steht im Konflikt mit vorhandenem Modul, Projekt oder vorhandener Objektbiliothek"
Hier ist meine Verweisliste:
Zitat von: PeterW am März 26, 2023, 07:12:16Fehlermeldung, die mich nicht weiterbringt:
"Name steht im Konflikt mit vorhandenem Modul, Projekt oder vorhandener Objektbiliothek"
Das passt schon, du solltest diese alte DLL auch nicht verwenden.
Nur deine Aussage, dass du bei den Verweisen von acc 2003 und acc 2016 keinen Unterschied hast, hat mich stutzig gemacht.
Zum Testen einfach mal eine neue Access Datei erstellen und testen ob es dort grundsätzlich funktioniert.
Die normale DAO Bibliothek die ich erwarten würde, kann ich in den Verweisen auch nicht sehen. Vor allem würde ich sie in der Reihenfolge vor der ADO Bibliothek erwarten.
Zitat von: markusxy am März 27, 2023, 08:18:22Die normale DAO Bibliothek die ich erwarten würde, [...]
Im Kontext der Umstellung von Acc2003 auf Acc2016 sollte man hier der Namen der "normalen DAO Bibliothek" für Acc2016 erwähnen: "Microsoft Office 16.0 Access database engine Object Library" (Datei: ACEDAO.DLL).