Fields.value zuweisung an Variable geht nicht

  • VB6

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von pgroener@s.netic.de.

    Fields.value zuweisung an Variable geht nicht

    Hallo zusammen,
    ich trau mich kaum......aber steh auf dem Schlauch. Schon 1000mal so gemacht...

    Problem:
    Nachdem das Recordset geöffnet ist, dann seh ich in der IDE den Feldinhalt als
    .fields(1).value korrekt z.B. ("1234"), wenn der Cursor über value steht.

    Die Zuweisung an a:
    (Dim a as variant !)

    a= .fields(1).value

    liefert a="" !! und nicht "1234"

    ??????????
    Ich find den Fehler nicht.
    Seht ihr ihn?
    nö.
    Ich seh überhaupt kein Code, wo ich was sehen könnte.
    Also eine komplette Methode ist immer am besten, um was zu sehen, weil da sieht man die meisten der Randbedingungen - im OptimalFall sogar alle.
    Zum Code einstellen benutze bitte die Forum-Funktionalität - damit der Code auch leserlich dargestellt wird.


    Ok.
    private sub.....
    Dim dhl_array(40) As Variant 'Array aus Puffer für DHL Exportliste
    Dim xzeile As ADODB.Connection
    Dim rspuffer As ADODB.Recordset
    Set xzeile = New ADODB.Connection
    Set rspuffer = New ADODB.Recordset
    xzeile.ConnectionString = dsnpfad & "zeilenDB.dsn"
    xzeile.Open 'ZeilenDB.MDB öffnen
    xzeile.Execute "DELETE * FROM PUFFER" 'löscht alten Datenbestand in ZeilenDB.mdb
    With rspuffer
    .ActiveConnection = xzeile
    .CursorType = adOpenKeyset
    .LockType = adLockOptimistic
    .Source = "PUFFER"
    .Open
    .AddNew
    For I = 1 To 37 'A) übetrtägt Zeilen in DB
    If I < 11 Then
    a = .Fields(I).value '<----liefert "" obwohl Feldinhalt korrekt ausgelesen wird
    dhl_array(I) = .Fields(I).Value 'und Kopie die ersten 10 Zeilen in dieses Array

    End If
    .Fields(I).Value = Replace(zeile(I - 1), "€", "")
    Next
    das ganze sieht eigenartig aus,
    ein
    With rspuffer
    hast du ohne
    End With

    was bekommst du an Daten mit

    Visual Basic-Quellcode

    1. Private Sub Command3_Click()
    2. Dim dhl_array(40) As Variant 'Array aus Puffer für DHL Exportliste
    3. Dim xzeile As ADODB.Connection
    4. Dim rspuffer As ADODB.Recordset
    5. Set xzeile = New ADODB.Connection
    6. Set rspuffer = New ADODB.Recordset
    7. xzeile.ConnectionString = dsnpfad & "zeilenDB.dsn"
    8. xzeile.Open 'ZeilenDB.MDB öffnen
    9. xzeile.Execute "DELETE * FROM PUFFER" 'löscht alten Datenbestand in ZeilenDB.mdb
    10. With rspuffer
    11. .ActiveConnection = xzeile
    12. .CursorType = adOpenKeyset
    13. .LockType = adLockOptimistic
    14. .Source = "PUFFER"
    15. .Open
    16. Do Until rspuffer.EOF
    17. Debug.Print rspuffer.Fields(0).Value
    18. rspuffer.MoveNext
    19. End With
    20. rspuffer.Close
    21. '.AddNew
    22. 'For I = 1 To 37 'A) übetrtägt Zeilen in DB
    23. 'If I < 11 Then
    24. 'a = .Fields(I).Value '<----liefert "" obwohl Feldinhalt korrekt ausgelesen wird
    25. 'dhl_array(I) = .Fields(I).Value 'und Kopie die ersten 10 Zeilen in dieses Array
    26. '
    27. 'End If
    28. '.Fields(I).Value = Replace(zeile(I - 1), "€", "")
    29. 'Next
    30. End Sub