Announcement

Collapse
No announcement yet.

Zahl aus Datenbank zu groß für Recordset?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zahl aus Datenbank zu groß für Recordset?

    Hi!

    Ich greife in VBA über den MyODBC-Treiber auf eine MySQL-DB zu und habe dabei ein Problem beim Auslesen eines Feldes.

    sqlstr = "select intValue from myTable"
    Set recset = conn.OpenRecordset(sqlstr, dbOpenDynamic)

    Laut MySQL Query Browser befindet sich in dem Feld die Zahl 4294556384. Wenn ich jedoch in VBA mit recset.Fields(0) den Inhalt lesen will, bekomme ich -34865151 zurück. Meine erste Vermutung ist, dass diese Zahl für ein Field in VBA zu groß ist. Und falls ich hiermit nicht auf dem Holzweg bin - kann ich ein Field oder das ganze Recordset so verändern, dass es für Zahlen dieser Größenordnung geeignet ist? Oder gibt es eine andere, bessere Möglichkeit als ein Recordset zu verwenden?

    Vielen Dank


    Freundliche Grüße

    Bernhard

  • #2
    Servus Namenskollege,

    Das was du hast ist ein unsigned int. Ob es das in VBA gibt weis ich leider nicht. Scheinbar wird defaultmäßig ein signed inte genommen.

    Comment


    • #3
      Danke ebenfalls Herr Namenskollege *g* für die Antwort.

      Hab das Problem jetzt so gelöst, dass ich bereits im Select-Statement die Zahl in einen String umwandle und dadurch die ganze Zahl mehr oder weniger erhalten bleibt. In VBA kann ich den String dann wieder problemlos in einen Double-Wert umwandeln. Das Problem war ja, dass die Zahl bereits "falsch" im Recordset gespeichert war, deshalb hätte auch eine nachträgliche Konvertierung in Double nichts gebracht. Und wie man die Felder bzw. ein Feld eines Recordsets als Double definieren kann hab ich nicht rausgefunden, vielleicht geht das nicht, ka, wäre dankbar, wenn zu diesem Punkt noch jemand was schreiben könnte


      Freundliche Grüße

      Bernhard

      Comment

      Working...
      X