Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354

    [vb6]verificare se il database è popolato o no e muoversi di conseguenza

    devo creare una controllo in avvio di form, che mi controlli appunto se nel database sono presenti o no elementi..e in relazione con questo mi abiliti o disabiliti due comandi.

    codice:
    Private sub verifica()
    if **** Then cmdPrimo.Enabled=true
    else cmdPrimo.Enabled=False
    end if
    end sub
    in sostanza un cosa semplice così...ma cosa metto al posto di ****?? rsDB.cosa?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    Esattamente cosa ti interessa sapere: se il database contiene tabelle, contiene tabelle con record, oppure se in una specifica tabella ci sono dei record?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    già scusa, quello che mi interessa è sapere se in una tabella ci sono dei record o se questa è vuota...
    questo perchè quando eseguo :

    codice:
    With rsOrdine
        Select Case Index
            Case CPRECEDENTE 'Va sul record precedente
            .MovePrevious
            'Se si è a BOF (Begin Of File) si torna sul primo record
            If .BOF Then .MoveLast
            
            Case CPROSSIMO
            .MoveNext
            'Se si è a EOF (End Of File) si torna sull'ultimo record
            If .EOF Then .MoveFirst
                            
        End Select
    End With
    se BOF coincide con EOF (ossia la tabella è vuota) mi da errore...

  4. #4
    Allora cattura il tipo di errore con "On error goto ..." e metti una bella If
    codice:
    On error goto Risolvi
    '
    '
    Risolvi:
    If Err.Number = NumeroErrore  then'sai qual'è quindi lo puoi scrivere come numero visto che non è una variabile
    msgbox "Tabella Vuota"
    end if
    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    non ho capito, devo convogliare il tutto in un "risolvi errore" e non posso invece avere un comando che, se la tabella è vuota, non generi nessun errore nel caso in cui si cerchi d'andare al record successivo?

  6. #6
    Ma in questa maniera l'errore lo puoi anche mascherare: al posto di risolvi inserisci la formula "resume next" e vedrai che non ri darà errori (cancella la routine risolvi anche)..

    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    ho provato a sistemare questo particolare...solo che non riesco a capire dove inserire il "On Error GoTo Risolvi"...

  8. #8
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    @Folcus:
    una volta aperto il recordset, prova con:

    codice:
    If rsOrdine.RecordCount = 0 Then
        MsgBox "Recordset Vuoto"
    Else
        MsgBox "Recordset popolato"
    End If
    @MdE2005:
    codice:
    If Err.Number = NumeroErrore  then'sai qual'è quindi lo puoi scrivere come numero visto che non è una variabile
    a quanto ne so ADO restituisce sempre e solo un unico numero di errore, è necessario poi guardare la collection Errors di ADO, per determinare il numero effettivo dell'errore da gestire

    Boolean

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    Se tu controlli BOF e EOF non hai bisogno nè di gestire gli errori nè di disabilitare o abilitare pulsanti:
    codice:
    With rsOrdine
        Select Case Index
            Case CPRECEDENTE 'Va sul record precedente
                'se non è BOF va al precedente  
                If Not .BOF Then .MovePrevious
                'se dopo l'istruzione è BOF oppure è già BOF va al primo
                If .BOF Then .MoveFirst
            Case CPROSSIMO
                'se non è EOF va al prossimo record  
                If Not .EOF Then .MoveNext
                'se dopo l'istruzione è EOF oppure è già EOF va su    
                'ultimo        
                If .EOF Then .MoveLast
        End Select
    End With
    comunque questo è un esempio di gestione errore:
    codice:
    Private Sub Form_Load()
    On Error GoTo Risolvi
    'istruzioni
        Exit Sub
    Risolvi: 
        ' il numero impostato è un esempio di un errore DAO
        If Err.Number = 3260 Then
            MsgBox Err.Description & " Si ritenta operazione ", vbCritical
            Resume
        Else
            MsgBox "Errore: " & Err.Number & " " & Err.Description
        End If
    End Sub
    Ciao

    PS: Chiedo scusa a Boolean che aveva già risposto per il controllo del recordset se vuoto, questa può comunque essere un'altra soluzione se il recordset è popolato.

  10. #10
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Figurati mgmg

    in effetti la mia soluzione va bene fino ad un certo punto, poichè a seconda del cursore utilizzato, potrebbe verificarsi che RecordCount restituisca comunque 0, nonostante il recordset sia popolato

    quindi... grazie a te.

    Boolean

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.