Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    [vb6] Leggere un campo

    Ciao a tutti allora vi illustro il mio problema , voglio questo:


    if serialnumber = rs("seriale") then

    msgbox OK



    come ho impostato io mi legge solo il primo recordo , invece io voglio che controlla su tutto i record che si trovano sotto il campo "seriale"


    come si fa ?

    grazie ciao

  2. #2
    Utente di HTML.it L'avatar di EngLab
    Registrato dal
    Jan 2006
    Messaggi
    496

    Re: [vb6] Leggere un campo

    Originariamente inviato da Incantatore
    if serialnumber = rs("seriale") then
    msgbox OK
    codice:
    rs.movefirst
    for i=1 to rs.recordcount
    if serialnumber = rs("seriale") then
    msgbox OK
    rs.movenext
    next i

  3. #3
    grazie per la risposta , infatti già l'ho usato ma credevo che c'era un altro metodo perchè ora mi restituisce l'errore next senza for questo è il codice:

    Private Sub Form_Load()
    Dim mese As Integer, anno As Integer
    Dim db As Database
    Dim rs As Recordset
    Dim rs1 As Recordset
    Dim rs3 As Recordset
    Dim WS As Workspace
    Dim Max As Long
    Dim dbfile As String
    Dim pwdstring As String
    Dim alert As String
    Dim hd As String
    Dim nserial As String


    Set WS = DBEngine.Workspaces(0)
    dbfile = (App.Path & "\Data\date.mdb")
    pwdstring = "swordfish"
    Set db = DBEngine.OpenDatabase(dbfile, False, False, ";PWD=" & pwdstring)
    Set rs3 = db.OpenRecordset("serialnumber", dbOpenTable)

    rs.MoveFirst
    For l = 1 To rs3.RecordCount


    If VolumeSerial("C") = rs3("seriali") Or VolumeSerial("d") = rs3("seriali") Or VolumeSerial("e") = rs3("seriali") Or VolumeSerial("f") = rs3("seriali") Or VolumeSerial("g") = rs3("seriali") Or VolumeSerial("h") = rs3("seriali") Or VolumeSerial("i") = rs3("seriali") Or VolumeSerial("l") = rs3("seriali") Or VolumeSerial("m") = rs3("seriali") Or VolumeSerial("n") = rs3("seriali") Or VolumeSerial("o") = rs3("seriali") Then

    Label43.Caption = "Visualizza Seriali Registrati "

    data.Caption = Format$(Date, "dddd, mmmm dd, yyyy")
    Timer1.Enabled = True
    Label15.Caption = "Benvenuto "
    Label34.Enabled = False

    pr.AddItem "FR"
    pr.AddItem "RM"
    pr.AddItem "LT"




    KeySection = "Backup"
    KeyKey = "data"
    loadini
    ubackup.Text = KeyValue

    If Format(Day(Date) - 15, "0#") & "/" & Format(Month(Date), "0#") & "/" & Year(Date) = ubackup.Text Then alert = MsgBox(" Sono passati 15 giorni dall'ultimo backup", vbInformation, "Back-UP")
    If Day(Date) & "/" & Format(Month(Date) - 1, "0#") & "/" & Year(Date) = ubackup.Text Then alert = MsgBox(" Sono passati 30 giorni dall'ultimo backup", vbInformation, "Back-UP")
    If Day(Date) & "/" & Format(Month(Date) - 2, "0#") & "/" & Year(Date) = ubackup.Text Then alert = MsgBox(" Sono passati 60 giorni dall'ultimo backup", vbInformation, "Back-UP")



    For eta = 1 To 99

    Combo4.AddItem eta
    Next


    nome.Locked = True
    Combo4.Locked = True
    uomo.Enabled = False
    donna.Enabled = False
    indir.Locked = True
    n.Locked = True
    citta.Locked = True
    pr.Locked = True
    telf.Locked = True
    telc.Locked = True
    email.Locked = True
    assicurazione.Enabled = False
    mensile.Locked = True
    gennaio.Enabled = False
    gennaio1.Locked = True
    febbraio.Enabled = False
    febbraio1.Locked = True
    marzo.Enabled = False
    marzo1.Locked = True
    aprile.Enabled = False
    aprile1.Locked = True
    maggio.Enabled = False
    maggio1.Locked = True
    giugno.Enabled = False
    giugno1.Locked = True
    luglio.Enabled = False
    luglio1.Locked = True
    agosto.Enabled = False
    agosto1.Locked = True
    settembre.Enabled = False
    settembre1.Locked = True
    ottobre.Enabled = False
    ottobre1.Locked = True
    novembre.Enabled = False
    novembre1.Locked = True
    dicembre.Enabled = False
    dicembre1.Locked = True
    trimestrale.Enabled = False
    trimestrale1.Locked = True
    semestrale.Enabled = False
    semestrale1.Locked = True
    annuale.Enabled = False
    annuale1.Locked = True





    Set WS = DBEngine.Workspaces(0)
    dbfile = (App.Path & "\Data\date.mdb")
    pwdstring = "swordfish"
    Set db = DBEngine.OpenDatabase(dbfile, False, False, ";PWD=" & pwdstring)
    Set rs = db.OpenRecordset("user", dbOpenTable)
    Set rs1 = db.OpenRecordset("pagamenti", dbOpenTable)

    Max = rs.RecordCount
    Max = rs1.RecordCount

    If rs.RecordCount = 0 Then
    Exit Sub
    Else
    rs.MoveFirst

    ListView1.ListItems.Clear


    Text1.Text = rs.RecordCount

    For i = 1 To Max

    ListView1.ListItems.Add , , rs!nome, , 3




    rs.MoveNext
    rs1.MoveNext
    Next i


    End If


    Timer2.Enabled = True
    Timer2.Interval = 2000

    Else

    MsgBox "Seriale Registrato: -195652520" & vbCrLf & "Seriale non conforme sul PC: " & VolumeSerial("C"), vbCritical, "Impossibile avviare il software"

    End

    End If
    End Sub





    dove metto
    rs3.movenext
    next l


    se lo metto alla fine prima del end if mi da errore ..... il penultimo end if , chiude if inizia del serialnumber ect...


    help me grazie

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Prova ad indentare correttamente il codice e lo capirai da solo ...

  5. #5
    Originariamente inviato da oregon
    Prova ad indentare correttamente il codice e lo capirai da solo ...

    Sono 2 giorni che ci provo ecco perchè ho chiesto di sapere se c'era un'altro metodo per leggere un campo intero, quindi la soluzione c'è?

    qual'è VVoVe:

  6. #6
    l'ho messo prima di end sub... però mi esce il box


    MsgBox "Seriale Registrato: -195652520" & vbCrLf & "Seriale non conforme sul PC: " & VolumeSerial("C"), vbCritical, "Impossibile avviare il software"



    If VolumeSerial("C") = rs3("seriali") Or VolumeSerial("d") = rs3("seriali") Or VolumeSerial("e") = rs3("seriali") Or VolumeSerial("f") = rs3("seriali") Or VolumeSerial("g") = rs3("seriali") Or VolumeSerial("h") = rs3("seriali") Or VolumeSerial("i") = rs3("seriali") Or VolumeSerial("l") = rs3("seriali") Or VolumeSerial("m") = rs3("seriali") Or VolumeSerial("n") = rs3("seriali") Or VolumeSerial("o") = rs3("seriali") Then



    questa opzioni fa quello che dico io nel senso :

    controlla se nel campo "seriali" in tutti i recorso se trova il valore -195652520 se nn lo trova nn parte .

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Incantatore
    Sono 2 giorni che ci provo ecco perchè ho chiesto di sapere se c'era un'altro metodo per leggere un campo intero, quindi la soluzione c'è?

    qual'è VVoVe:
    2 giorni che tenti di indentare il codice che hai mostrato?

    Ma hai capito cosa ti ho detto?

  8. #8
    mi sa di no :master: cosa vuol dire?

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Indentare il codice significa scriverlo in un certo modo (vedi dopo) in modo da avere presenti i blocchi delle varie parti dello stesso. Il tuo codice (qualunque cosa faccia ...) dovrebbe essere scritto cosi'

    codice:
    Private Sub Form_Load()
        Dim mese As Integer, anno As Integer
        Dim db As Database
        Dim rs As Recordset
        Dim rs1 As Recordset
        Dim rs3 As Recordset
        Dim WS As Workspace
        Dim Max As Long
        Dim dbfile As String
        Dim pwdstring As String
        Dim alert As String
        Dim hd As String
        Dim nserial As String
    
        Set WS = DBEngine.Workspaces(0)
        dbfile = (App.Path & "\Data\date.mdb")
        pwdstring = "swordfish"
        Set db = DBEngine.OpenDatabase(dbfile, False, False, ";PWD=" & pwdstring)
        Set rs3 = db.OpenRecordset("serialnumber", dbOpenTable)
    
        rs.MoveFirst
        For l = 1 To rs3.RecordCount
            If VolumeSerial("C") = rs3("seriali") Or VolumeSerial("d") = rs3("seriali") Or VolumeSerial("e") = rs3("seriali") Or VolumeSerial("f") = rs3("seriali") Or VolumeSerial("g") = rs3("seriali") Or VolumeSerial("h") = rs3("seriali") Or VolumeSerial("i") = rs3("seriali") Or VolumeSerial("l") = rs3("seriali") Or VolumeSerial("m") = rs3("seriali") Or VolumeSerial("n") = rs3("seriali") Or VolumeSerial("o") = rs3("seriali") Then
                Label43.Caption = "Visualizza Seriali Registrati "
                Data.Caption = Format$(Date, "dddd, mmmm dd, yyyy")
                Timer1.Enabled = True
                Label15.Caption = "Benvenuto "
                Label34.Enabled = False
    
                pr.AddItem "FR"
                pr.AddItem "RM"
                pr.AddItem "LT"
    
                KeySection = "Backup"
                KeyKey = "data"
                loadini
                ubackup.Text = KeyValue
    
                If Format(Day(Date) - 15, "0#") & "/" & Format(Month(Date), "0#") & "/" & Year(Date) = ubackup.Text Then alert = MsgBox(" Sono passati 15 giorni dall'ultimo backup", vbInformation, "Back-UP")
                If Day(Date) & "/" & Format(Month(Date) - 1, "0#") & "/" & Year(Date) = ubackup.Text Then alert = MsgBox(" Sono passati 30 giorni dall'ultimo backup", vbInformation, "Back-UP")
                If Day(Date) & "/" & Format(Month(Date) - 2, "0#") & "/" & Year(Date) = ubackup.Text Then alert = MsgBox(" Sono passati 60 giorni dall'ultimo backup", vbInformation, "Back-UP")
    
                For eta = 1 To 99
                    Combo4.AddItem eta
                Next
    
                nome.Locked = True
                Combo4.Locked = True
                uomo.Enabled = False
                donna.Enabled = False
                indir.Locked = True
                n.Locked = True
                citta.Locked = True
                pr.Locked = True
                telf.Locked = True
                telc.Locked = True
                email.Locked = True
                assicurazione.Enabled = False
                mensile.Locked = True
                gennaio.Enabled = False
                gennaio1.Locked = True
                febbraio.Enabled = False
                febbraio1.Locked = True
                marzo.Enabled = False
                marzo1.Locked = True
                aprile.Enabled = False
                aprile1.Locked = True
                maggio.Enabled = False
                maggio1.Locked = True
                giugno.Enabled = False
                giugno1.Locked = True
                luglio.Enabled = False
                luglio1.Locked = True
                agosto.Enabled = False
                agosto1.Locked = True
                settembre.Enabled = False
                settembre1.Locked = True
                ottobre.Enabled = False
                ottobre1.Locked = True
                novembre.Enabled = False
                novembre1.Locked = True
                dicembre.Enabled = False
                dicembre1.Locked = True
                trimestrale.Enabled = False
                trimestrale1.Locked = True
                semestrale.Enabled = False
                semestrale1.Locked = True
                annuale.Enabled = False
                annuale1.Locked = True
    
                Set WS = DBEngine.Workspaces(0)
                dbfile = (App.Path & "\Data\date.mdb")
                pwdstring = "swordfish"
                Set db = DBEngine.OpenDatabase(dbfile, False, False, ";PWD=" & pwdstring)
                Set rs = db.OpenRecordset("user", dbOpenTable)
                Set rs1 = db.OpenRecordset("pagamenti", dbOpenTable)
    
                Max = rs.RecordCount
                Max = rs1.RecordCount
    
                If rs.RecordCount = 0 Then
                    Exit Sub
                Else
                    rs.MoveFirst
    
                    ListView1.ListItems.Clear
                    Text1.Text = rs.RecordCount
    
                    For i = 1 To Max
                        ListView1.ListItems.Add , , rs!nome, , 3
    
                        rs.movenext
                        rs1.movenext
                    Next i
                End If
    
                Timer2.Enabled = True
                Timer2.Interval = 2000
    
            Else
                MsgBox "Seriale Registrato: -195652520" & vbCrLf & "Seriale non conforme sul PC: " & VolumeSerial("C"), vbCritical, "Impossibile avviare il software"
                End
            End If
        '?????
    End Sub
    Alla fine, dove ho messo i ????? manca una Next ...

    Naturalmente, questo dal punto di vista sintattico ... da quello logico dipende da cosa deve fare il tuo codice ... (che e' abbastanza confuso ... basta vedere le righe

    Max = rs.RecordCount
    Max = rs1.RecordCount

    per cui la prima risulta del tutto inutile ...)

  10. #10
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    indentare significa rientrare delle giuste righe per ogni istruzione... ci capirai più tu e anche gli altri... probabile che tu già lo faccia (almeno spero) ma semplicemente quando posti il codice usa i tag code /code...

    comunque riguardo il recordcount che ti hanno segnalato al secondo post ti avviso di una cosa... io lo uso spesso come argomento per la objrs.GetRows ma se prima non fai un movelast/movenext ti potrebbe restituire un valore sballato (tipicamente un -1) senza conteggiare i record... il motivo non lo so...

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.