MoveNext funktioniet nicht

Dieses Thema MoveNext funktioniet nicht im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von freddie104, 9. Dez. 2004.

Thema: MoveNext funktioniet nicht Ich habe in einer Datenbak folgenden Problem. Es sind alle dateien aus TXT-fiels importiert worden. Alles Hat super...

  1. Ich habe in einer Datenbak folgenden Problem.

    Es sind alle dateien aus TXT-fiels importiert worden. Alles Hat super geklappt. Die DB ist Mitlerweile auch schon gut 150 MB groß. Nun sollen noch ein paar konvertierugnen gemacht werden. Das heißt aus den String 3174 soll 31,74 ? werde.
    Das klappt auch, aber dies soll in 3000 Datenzaätzen geschehen. Das wüde auch gehen wenn der MoveNext befehl funktioniernen würde.

    Der Code bisher:

    Dim DB As DAO.Database
    Dim DataLS As Recordset
    Dim TabTest As Recordset
    Dim OrgPreis, NKPreis, HUPreis, Cent, Euro, Symbol, TestPreis, PreisNeu As String
    Sub Preise()
    Set DB = CurrentDb()
    Set DataLS = DB.OpenRecordset(t_ihls_090_neu)
    Set TabTest = DB.OpenRecordset(z_test)
    OrgPreis = DataLS.Fields(38)
    NKPreis = 0,
    HUPreis = ,
    Symbol = ?
    Do While DataLS.EOF <> True
    TestPreis =
    Cent =
    Euro =
    If Len(OrgPreis) = 2 Then
    TestPreis = NKPreis + OrgPreis
    ElseIf Len(OrgPreis) = 3 Then
    Cent = Right(OrgPreis, 2)
    Euro = Left(OrgPreis, 1)
    ElseIf Len(OrgPreis) = 4 Then
    Cent = Right(OrgPreis, 2)
    Euro = Left(OrgPreis, 2)
    ElseIf Len(OrgPreis) = 5 Then
    Cent = Right(OrgPreis, 2)
    Euro = Left(OrgPreis, 3)
    ElseIf Len(OrgPreis) = 6 Then
    Cent = Right(OrgPreis, 2)
    Euro = Left(OrgPreis, 4)
    End If
    TestPreis = Euro + HUPreis + Cent + Symbol
    TabTest.AddNew
    TabTest.Fields(1) = TestPreis
    TabTest.Update
    DataLS.MoveNext
    Loop
    End Sub

    über etwas hilfe würde ich mich echt freuen!!
     
  2. ;)

    Wir uns auch... welche Sprache ist das? Welche Datenbank hast du installiert?

    Greetz
    M.
     
  3. @ Michael_B

    :-[ wegen der Fehlenden Informationen

    Als Das ganze ist VBA

    Datenbank ist Ms Access
     
  4. Hallo freddie,
    Also ich hab mal von VB rein gar keine Ahnung!!

    Aber in PHP mit ADODB würde das ganze ungefähr so aussehen:

    Code:
    while(!$recordset->EOF) {
        if ( ) {  }
        else if( ) {  }
        else {  }      
        $recordset->MoveNext();
    }
    
    In deinem Code kommt es mir etwas komisch vor, das DO und While in einer Zeile sind.
    Sorry, aber vielleicht ist es ja in VB so, nix Ahnung ich hab.
    Bei PHP währe es etwas anders. Etwa so:

    Code:
    do {
        if ($i < 5) {
            echo i ist nicht groß genug;
            break;
        }
        $i *= $factor;
        if ($i < $minimum_limit) {
            break;
        }
        echo i ist ok;
    
        /* mach was mit i */
    
    } while (0); 
    
    Da kommt oben das DO und unten das WHILE.
    d.h. die Schleife wird min. einmal durchlaufen.

    Ich hoffe es hilft ein wenig
     
  5. @conny

    die ausage
    ist in VB völlig normal und korrekt.
    Es heist in diesem Fall:
    duchlaufe die schleife solange bis EndOfFile erreicht ist. Entscheident ist dabei das
    am Ende der Schleife. Dadurch wird das Programm gezwungen solange die Schleife zu duchlaufen bis EOF erreicht.

    Das läuft in anderen Datenbanken ohne Probleme.

    aber danke :)
     
  6. :D
    manchmal muss man echt blind sein!!!
    ein ganz dummer Fehler ist mir da passiert.

    Ich habe einfach das festlegen des Inhaltes der Variablen
    an der Falschen stelle gemacht.
    Dies hätte im oberen Schleifen bereich geschehen müssen.

    Ich danke für eure bemühungen. :)