Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: Problema Ciclo IF

  1. #1

    Problema Ciclo IF

    Secondo voi cosa c'è che non va in questo ciclo IF Then else
    Do While Not RsDitta.Eof
    If RSDitta("Posizione") = posizione Then
    For I = 1 to (Diff+1)
    RSDitta("Posizione")=Posizione+I
    RSDitta.Update
    RSDitta.Movenext
    Next
    Else
    RSDitta.Movenext
    End If
    Loop
    Il sistema non entra mai in questo ciclo if anche se la condizione è vera!

    Aiutatemi sto impazzendo!

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Potrebbe non entrare nella FOR, diff cos'è?
    Metti un response.write prima e dopo la FOR e controlla.
    Poi mi dici a che serve questo ciclo... forse potevi farlo nella query...

    Roby

  3. #3

    Risp

    Nella For entra ho provato mettendo un valore numerico invece della variabile posizione nella IF
    ti posto tutta la procedura:
    Dim RSDitta,Numrec,Diff,StrPos
    StrPos="Select * from ditte where IDRegione="&regione
    Set RsDitta = Server.CreateObject("AdoDB.RecordSet")
    rsDitta.Open strPos, objRegioni, 3, 3
    NumRec=RsDitta.recordcount
    if posizione="" then
    posizione=NumRec
    End if
    Diff=NumRec-Posizione
    Do While Not RsDitta.Eof
    If RSDitta("Posizione") = posizione Then
    For I = 1 to (Diff+1)
    RSDitta("Posizione")=Posizione+I
    RSDitta.Update
    RSDitta.Movenext
    Next
    Else
    RSDitta.Movenext
    End If
    Loop

  4. #4
    indenta il codice e usa il tag CODE, va insieme la vista

  5. #5

    Codice

    codice:
    Dim RSDitta,Numrec,Diff,StrPos 
    StrPos="Select * from ditte where IDRegione="&regione 
    Set RsDitta = Server.CreateObject("AdoDB.RecordSet") 
    rsDitta.Open strPos, objRegioni, 3, 3 
    NumRec=RsDitta.recordcount 
    if posizione="" then 
     posizione=NumRec 
    End if 
    Diff=NumRec-Posizione 
    Do While Not RsDitta.Eof 
     If RSDitta("Posizione") = posizione Then 
      For I = 1 to (Diff+1) 
       RSDitta("Posizione")=Posizione+I 
       RSDitta.Update 
       RSDitta.Movenext 
      Next 
      Else 
       RSDitta.Movenext 
      End If 
    Loop

  6. #6
    e quale è il problema? ci sono due IF... quale non funziona?

  7. #7

    problema IF

    Il problema è il ciclo If. Anche se la condizione è vera non entra.
    L'intento di questo codice è questo:
    Nel sito vengono inserite delle voci che hanno una posizione ben determinata dall'utente. Se nel database la posizione è già presente questa deve essere traslata come tutte le successive per far posto a quella inserita.
    Spero di essere stato chiaro!

  8. #8
    non funziona il secondo!

  9. #9
    un po' di debug, pls

    codice:
    Do While Not RsDitta.Eof 
       Response.Write "RSDitta("Posizione")...: " & RSDitta("Posizione")  & "
    "
       Response.Write "posizione...: " & posizione & "
    "
       If RSDitta("Posizione") = posizione Then 
          For I = 1 to (Diff+1) 
             RSDitta("Posizione")=Posizione+I 
             RSDitta.Update 
             RSDitta.Movenext 
          Next 
       Else 
          RSDitta.Movenext 
       End If 
    Loop

  10. #10
    Ho provato a mettere un valore al posto di posizione tipo
    codice:
     If RSditta("posizione")= 2 Then
     etc etc
    ed il programma entra nel ciclo if
    Credo che sia un problema di sintassi
    ma non riesco a capire qual'è!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.