Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Feldgröße

Begonnen von PeterW, März 23, 2023, 15:58:22

⏪ vorheriges - nächstes ⏩

PeterW

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?
Viele Grüße aus Berlin
Peter

PhilS

?
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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

PeterW

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
Viele Grüße aus Berlin
Peter

markusxy

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.

PhilS

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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

PeterW

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
Viele Grüße aus Berlin
Peter

markusxy

Das fehlt die Deklaration und die Initialisierung von TBL.

ebs17

Die Anwendung der Size-Property wird außerdem nur beim Datentyp Text sinnvoll sein.
Mit freundlichem Glück Auf!

Eberhard

PeterW

Die steht etwas weiter vorn im Code
Viele Grüße aus Berlin
Peter

PeterW

Dieses Programm läuft in der Version 2003 (.mdb) einwandfrei. Fehlt da vielleicht ein Verweis? Ich kann aber bei einem Vergleich keinen finden.
Viele Grüße aus Berlin
Peter

markusxy

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?




PeterW

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:
Viele Grüße aus Berlin
Peter

markusxy

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.

PhilS

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).
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor