Code funktioniert im einzelnen aber nicht wenn er zusammengesetzt wird.

  • VB6

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Code funktioniert im einzelnen aber nicht wenn er zusammengesetzt wird.

    Hallo als Neuling.

    Mein Problem ist das folgende:
    Wie man sieht besteht der Code im Grunde aus zwei Abschnitten. Eine Abfrage aus der eine Schleife erzeugt wird. In dieser Schleife soll ein SQL UPDATE ausgeführt werden.
    Die Abfrage mit der Schleife funktioniert tadellos. Auch der Update funtioniert einzeln. Nur zusammengesetzt stürzt das Programm ab bzw. bleibt hängen.

    Gleich vorweg möchte ich noch sagen dass der Code nur genau einmal funktionieren muß und zu keinem speziellen Programm werden soll. (Get things done!)
    Ich muß in einer produktiv Datenbank in meinem Betieb lediglich eine Änderung durchführen und bin selbst nur ein leidlicher Gelegenheitsprogrammierer.

    Ich hoffe auf hilfreiche Antworten da mit das Problem seit Tagen im Magen liegt und mir die Zeit davon läuft.
    Danke für die Hilfe im Voraus!!

    Quellcode

    1. Private Sub cmdUpdateFull_Click()
    2. Dim cmd As New Command
    3. Dim Rs As New Recordset
    4. DBConnect
    5. cmd.CommandType = adCmdText
    6. cmd.CommandText = "select PK_Leistungen_ID,name1, PosArtbez1, posartbez2, possonstiges, hinweis from leistungen,Baustelle where Baustelle.WirdGepflegt = 1 and Baustelle.PK_Baustelle_ID = leistungen.FK_Baustelle_ID and leistungen.PosSonstiges not like 'NULL' order by name1"
    7. cmd.ActiveConnection = conn
    8. Set Rs = cmd.Execute
    9. Dim Zeichen As Integer
    10. Dim Zähler As Integer
    11. Dim PK_ID As Integer
    12. Do While Not Rs.EOF = True
    13. Zähler = Zähler + 1
    14. Me.cmdUpdateFull.Caption = "Datensatz: " & Zähler & " von: " & Text1
    15. PK_ID = Rs!PK_leistungen_ID
    16. Me.Text2.Text = PK_ID
    17. '############# Updaten der Datenbank
    18. Dim MemoNeu As Variant
    19. MemoNeu = Trim$(Rs!possonstiges)
    20. Dim Rs2 As New Recordset
    21. cmd.CommandText = "Update leistungen set leistungen.Pflanzhinweis = '" & MemoNeu & "' where leistungen.PK_leistungen_ID = " & PK_ID
    22. cmd.ActiveConnection = conn
    23. Set Rs2 = cmd.Execute
    24. Rs.MoveNext
    25. Loop
    26. conn.Close
    27. End Sub
    Verwende für das Update ein eigenes Command

    Visual Basic-Quellcode

    1. Dim cmd As New Command, cmd2 As New Command
    2. ...
    3. cmd2.CommandText = "Update leistungen set leistungen.Pflanzhinweis = '" & MemoNeu & "' where leistungen.PK_leistungen_ID = " & PK_ID
    4. cmd2.ActiveConnection = conn
    5. cmd2.ExecuteNonQuery
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Eigenes Cmd pobiert, mit gleichem Ergebnis.

    Danke für den Hinweis. Habs grade versucht aber das Ergebnis ist das gleiche.
    Allerdings wenn ich

    Quellcode

    1. cmd2.ExecuteNonQuery


    verwenden will bekomme ich eine Fehlermeldung: Methode oder Mitgliedsdaten nicht gefunden.

    Ich verwende ADO

    Das mit dem Update bekomme ich nicht hin. Ich benutze ADO und da gibt es den Recordset.edit nicht. Der ist aber wohl für Recordset.update nötig.

    Ich verzweifle noch.
    Mein bisheriger Code funktioniert ja soweit. Auch mit cmd.execute.

    Nur eben sobald der Update Befehl in der Do ... While Schleife steht verweigert er den Dienst. Das kann doch nicht sein, oder!