Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [vb.net]msgBox problema

    Raga ho questo codice che mi cerca degli elementi in un database access.
    se gli elementi me li trova appaiono nei miei textbox altrimenti non va.
    por la query grazie a Braianjar è tutto ok solo il msgBox non mi appare se non trova niente. questo è il codice forse ho sbagliato a posizionare il msgbox?
    codice:
    'apertura connessione'
            m_cnConnessioneADO.CursorLocation = ADODB.CursorLocationEnum.adUseClient
            m_cnConnessioneADO.Open("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Documents and Settings\Mirco Web Master\Documenti\Coktail.mdb")
            'controllo pulsanti'
            If CheckBox1.Checked = True And RadioButton1.Checked = True Then
    
                Dim sql As String
                sql = "SELECT * FROM Alcolici WHERE (Ingredienti LIKE '%gin%') and(Ingredienti LIKE '%dolce%')"
                NomeCok.Text = ""
                DescCok.Text = ""
                m_rsAlcolici.Open(sql, m_cnConnessioneADO, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
                ' A questo punto hai il record  
                ' ma (prima) lo chiudevi subito  
                ' Questa istruzione, poi, la facevi sempre prima 
                ' della Open 
                If m_rsAlcolici.RecordCount > 0 Then
                    NomeCok.Text = m_rsAlcolici.Fields("Nome").Value
                    DescCok.Text = m_rsAlcolici.Fields("Descrizione").Value
               
                End If
            End If
            If CheckBox1.Checked = True And RadioButton1.Checked = True And RadioButton3.Checked = True Then
                Dim sql As String
                NomeCok.Text = ""
                DescCok.Text = ""
                sql = "SELECT * FROM Alcolici WHERE (Ingredienti LIKE '%gin%') and (Ingredienti LIKE '%dolce%')and (Ingredienti LIKE '%fragola%')"
                m_rsAlcolici.Open(sql, m_cnConnessioneADO, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
                ' A questo punto hai il record  
                ' ma (prima) lo chiudevi subito  
                ' Questa istruzione, poi, la facevi sempre prima 
                ' della Open 
                If m_rsAlcolici.RecordCount > 0 Then
                    NomeCok.Text = m_rsAlcolici.Fields("Nome").Value
                    DescCok.Text = m_rsAlcolici.Fields("Descrizione").Value
                Else
                    If m_rsAlcolici.RecordCount = 0 Then
                        MsgBox("Non è stato trovato nessun cocktail.Riprova cambiando gli ingreddienti", MsgBoxStyle.Exclamation)
                    End If
                    End If
            End If
            m_rsAlcolici.Close()
            m_cnConnessioneADO.Close()

  2. #2
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Siccome fai una m_rsAlcolici.Close() indipendentemente se il
    recordset è stato inizializzato o meno, dovresti controllare
    l'inizializzazione prima di fare la m_rsAlcolici.Close() medesima.

    [CODE]
    ' Al posto di m_rsAlcolici.Close()
    If Not m_rsAlcolici.ActiveConnection Is Nothing then sAlcolici.Close()
    [CODE]

    Ciao,
    Ciao, Brainjar

  3. #3
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    L'istruzione corretta è :
    If Not m_rsAlcolici.ActiveConnection Is Nothing then m_rsAlcolici.Close()


    ciao.
    Ciao, Brainjar

  4. #4
    ora provo.
    <Rimani sempre il MIGLIORE>

  5. #5
    funziona perfettamente.
    Grazie mille.
    Brainjar un ultima cosa e poi non ti do più fastidio te lo prometto.

    Quando l'utente preme il tasto ok del msgbox io vorrei far cancellare tutte le selezioni fatte prima dall'utente ne vari radio button non so se va bene
    Me.refresh()

    cmq vorrei che quando preme ok nel msgbox ille selezioni dei vari radiobutton vengono tolte e messi come quando si apre il form.
    Ti prometti se mi aiuti adesso non ti do più fastidio.

  6. #6
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Non voglio fare il modesto, ma credo che in questo forum ci siano
    molti 'grandi' e qualche 'grandissimo'.

    E' una questione di esperienza. Il sapere DEVE essere divulgato.

    "Siamo arrivati fin qui sulle spalle di giganti" (I.Newton)

    Ciao,
    Ciao, Brainjar

  7. #7
    cmq io sto iniziando ad imparare visual basic net grazie a te.
    sul libro che sto studiando non si capisce nulla
    Brainjar un ultima cosa e poi non ti do più fastidio te lo prometto.

    Quando l'utente preme il tasto ok del msgbox io vorrei far cancellare tutte le selezioni fatte prima dall'utente ne vari radio button non so se va bene
    Me.refresh()

    cmq vorrei che quando preme ok nel msgbox ille selezioni dei vari radiobutton vengono tolte e messi come quando si apre il form.
    Ti prometti se mi aiuti adesso non ti do più fastidio

  8. #8
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Guarda che il Forum non è a casa mia, per cui non mi dai
    assolutamente fastidio. Infatti potrebbe arrivarti una risposta da
    chiunque. Premesso questo, veniamo al punto.
    Potresti sfruttare il codice che ti ha suggerito Tas per richiamare
    una funzione che ti Resetta le check.
    codice:
    ' Questa è una delle If nel codice del bottone
    If m_rsAlcolici.RecordCount = 0 Then
        MsgBox("Non è stato trovato nessun cocktail.Riprova cambiando gli ingreddienti", MsgBoxStyle.Exclamation)
        ResetStatoCheck() 
    End If
    
    
    ' Questa è la routine che inserisci nel form
    Private Sub ResetStatoCheck()
        Dim c As Control
        Dim ck As CheckBox
        For Each c In GroupBox1.Controls
            If TypeOf c Is CheckBox Then
                ck = c
                If ck.Checked Then ck.Checked = False
            End If
        Next
    End Sub
    Un'ultima cosa :

    NomeCok.Text = ""
    DescCok.Text = ""

    Dovresti spostarle prima di fare il controllo sui Check, prima delle
    If ...., per intenderci. Così non ti resta la descrizione vecchia nel
    caso non trovi niente.


    Ciao,
    Ciao, Brainjar

  9. #9
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Guardando bene il codice questa parte :
    codice:
    If m_rsAlcolici.RecordCount = 0 Then
        MsgBox("Non è stato trovato nessun cocktail.Riprova cambiando gli ingreddienti", MsgBoxStyle.Exclamation)
    End If
    devi portarla fuori le due If di controllo

    codice:
            m_cnConnessioneADO.CursorLocation = ADODB.CursorLocationEnum.adUseClient
            m_cnConnessioneADO.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Documents and Settings\Mirco Web Master\Documenti\Coktail.mdb")
    
            NomeCok.Text = ""
            DescCok.Text = ""
    
            'controllo pulsanti'
    
            If CheckBox1.Checked = True And RadioButton1.Checked = True Then
    
                Dim sql As String
                sql = "SELECT * FROM Alcolici WHERE (Ingredienti LIKE '%gin%') and(Ingredienti LIKE '%dolce%')"
                m_rsAlcolici.Open(sql, m_cnConnessioneADO, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
                ' A questo punto hai il record
                ' ma (prima) lo chiudevi subito
                ' Questa istruzione, poi, la facevi sempre prima
                ' della Open
                If m_rsAlcolici.RecordCount > 0 Then
                    NomeCok.Text = m_rsAlcolici.Fields("Nome").Value
                    DescCok.Text = m_rsAlcolici.Fields("Descrizione").Value
               
                End If
            End If
            If CheckBox1.Checked = True And RadioButton1.Checked = True And RadioButton3.Checked = True Then
                Dim sql As String
                sql = "SELECT * FROM Alcolici WHERE (Ingredienti LIKE '%gin%') and (Ingredienti LIKE '%dolce%')and (Ingredienti LIKE '%fragola%')"
                m_rsAlcolici.Open(sql, m_cnConnessioneADO, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)
                ' A questo punto hai il record
                ' ma (prima) lo chiudevi subito
                ' Questa istruzione, poi, la facevi sempre prima
                ' della Open
                If m_rsAlcolici.RecordCount > 0 Then
                    NomeCok.Text = m_rsAlcolici.Fields("Nome").Value
                    DescCok.Text = m_rsAlcolici.Fields("Descrizione").Value
                End If
            End If
            If m_rsAlcolici.RecordCount = 0 Then
                MsgBox("Non è stato trovato nessun cocktail.Riprova cambiando gli ingreddienti", MsgBoxStyle.Exclamation)
                ResetStatoCheck() 
            End If
            If Not m_rsAlcolici.ActiveConnection Is Nothing Then
                m_rsAlcolici.Close()
            End If
            m_cnConnessioneADO.Close()
    Ciao,
    Ciao, Brainjar

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.