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

    Msgbox

    Salve ragazzi qualcuno sa dirmi come faccio a far comparire un MSGBOX del Tipo(Nessuna Chiamata trovata nell'indice di date inserite!", vbCritical, "ATTENZIONE") nel codice sotto inserito?
    Vorrei che alla pressione del pulsante se non viene trovato nessun record mi appaia il messaggio.Grazie


    Private Sub XPButton1_Click()

    Dim Strsql As String

    = "Select * from Rubrica Where O_F = '" & XPText1.Text & "' And [DataChiusura] between #" & Format$(DTPicker1.Value, "dd/mm/yyyy") & "# And #" & Format$(DTPicker2.Value, "dd/mm/yyyy") & "#"
    End Sub
    ------------------------------------------------------------------------------
    Private Sub Stampa2(sQL As String)

    On Error Resume Next
    '<< Stampa i dati inviati dalla stringa SQL

    '<< Percorso e connessione del Database
    ConnessioneADODC1 = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=Database di Microsoft Access;Initial Catalog=C:\SITc\Agenda.mdb"
    '<< Database
    Dim DB As ADODB.Connection
    '<< Recordset


    Dim RecDati As ADODB.Recordset

    Set DB = New ADODB.Connection
    Set RecDati = New ADODB.Recordset
    DB.ConnectionString = ConnessioneADODC1
    DB.Open

    Set RecDati = DB.Execute(sQL)
    Set DataReport3.DataSource = RecDati

    DataReport3.WindowState = 0
    DataReport3.Show

    End Sub
    :master: :master: :master:

  2. #2
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    riporta il codice in modo corretto please,c'è un = buttato lì
    usa il bottoncino #
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  3. #3
    Il Codice che ho inserito Adesso è funzionante, mi ero dimenticato di inserire qualche riga.Comunque nel Form di ricerca che ho creato ci sono due Dtpicker e un command Button che mi consente di trovare e stampare dei record del database compresi nell' indice di date inserite.Il codice che ho inserito in neretto è quello utilizzato per il Messaggio che mi dovrebbe apparire se non ci sono date comprese in quelle inserite nei due Dtpicker, ma non funziona mi potete aiutare Grazie, spero di essere stato chiaro mi scuso per prima.




    Private Sub XPButton1_Click()
    Dim Strsql As String

    '<< Stringa SQL che permette di cercare tutti i clienti che hanno la stessa residenza
    '<< nel DataReport
    Strsql = "Select * from Rubrica Where O_F = '" & XPText1.Text & "' And [DataChiusura] between #" & Format$(DTPicker1.Value, "dd/mm/yyyy") & "# And #" & Format$(DTPicker2.Value, "dd/mm/yyyy") & "#"
    'Debug.Print Strsql
    '"'#And # where [DataChiusura] BETWEEN #" & Format$(Text1.Text, "mm/dd/yyyy") & "#And #" & Format$(Text2.Text, "mm/dd/yyyy") & "#"
    Stampa2 Strsql


    End Sub

    Private Sub Stampa2(sQL As String)
    On Error Resume Next
    '<< Stampa i dati inviati dalla stringa SQL

    '<< Percorso e connessione del Database
    ConnessioneADODC1 = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=Database di Microsoft Access;Initial Catalog=C:\SITc\Agenda.mdb"
    '<< Database
    Dim DB As ADODB.Connection
    '<< Recordset
    Dim RecDati As ADODB.Recordset

    Set DB = New ADODB.Connection
    Set RecDati = New ADODB.Recordset
    DB.ConnectionString = ConnessioneADODC1
    DB.Open

    Set RecDati = DB.Execute(sQL)
    Set DataReport3.DataSource = RecDati
    DataReport3.WindowState = 0
    DataReport3.Show
    [B] If RecDati.RecordCount = 0 Then
    MsgBox "Nessuna Chiamata trovata nell'indice di date inserite!", vbCritical, "ATTENZIONE"

    End If End Sub

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ti avevano detto di inserire il codice nel messaggio in modo che si possa valutare meglio ... devi usare il tasto # del forum ... perche' non lo fai?

  5. #5
    Originariamente inviato da printlist
    .....................
    .Il codice che ho inserito in neretto è quello utilizzato per il Messaggio che mi dovrebbe apparire se non ci sono date comprese in quelle inserite nei due Dtpicker, ma non funziona
    ................




    ....................

    Private Sub Stampa2(sQL As String)
    On Error Resume Next
    '<< Stampa i dati inviati dalla stringa SQL

    '<< Percorso e connessione del Database
    ConnessioneADODC1 = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=Database di Microsoft Access;Initial Catalog=C:\SITc\Agenda.mdb"
    '<< Database
    Dim DB As ADODB.Connection
    '<< Recordset
    Dim RecDati As ADODB.Recordset

    Set DB = New ADODB.Connection
    Set RecDati = New ADODB.Recordset
    DB.ConnectionString = ConnessioneADODC1
    DB.Open

    Set RecDati = DB.Execute(sQL)
    Set DataReport3.DataSource = RecDati
    DataReport3.WindowState = 0
    DataReport3.Show
    [B] If RecDati.RecordCount = 0 Then
    MsgBox "Nessuna Chiamata trovata nell'indice di date inserite!", vbCritical, "ATTENZIONE"

    End If End Sub
    Ciao,
    l'errore sta in questa righa :

    Set RecDati = DB.Execute(sQL)

    che ti torna sempre un cursore adOpenForwardOnly per il quale il RecordCount vale sempre -1
    ..........
    If RecDati.RecordCount = 0 Then <<< e quindi qui non entrerà mai
    MsgBox "Nessuna Chiamata trovata nell'indice di date inserite!" ........
    end if


    Ciao sspintux

  6. #6
    Scusate non avevo capito mi dispiace.Come posso allora far apparire un messaggio di errore a dataReport vuoto se l'errore sta in questa righa :

    Set RecDati = DB.Execute(sQL)
    che mi da sempre un cursore adOpenForwardOnly per il quale il RecordCount vale sempre -1?
    come mi suggerisce (sspintux ).Grazie ancora.....

  7. #7
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao printlist,
    Dico subito che non uso la sintassi da te evidenziata, pertanto non entro nel merito della correttezza o meno del codice, quello che volevo dirti è che per la verifica che devi fare
    ti conviene utilizzare le proprietà BOF ed EOF, che tra l'altro restituiscono valori booleani.
    Quindi se entrambe le proprietà BOF ed EOF restituiscono True, non è disponibile alcun record corrente.
    Tipo:
    If RecDati.EOF = True And RecDati.BOF = True Then
    ' ... ...
    LM

  8. #8
    Originariamente inviato da LMondi
    Ciao printlist,
    Dico subito che non uso la sintassi da te evidenziata, pertanto non entro nel merito della correttezza o meno del codice, quello che volevo dirti è che per la verifica che devi fare
    ti conviene utilizzare le proprietà BOF ed EOF, che tra l'altro restituiscono valori booleani.
    Quindi se entrambe le proprietà BOF ed EOF restituiscono True, non è disponibile alcun record corrente.
    Tipo:
    If RecDati.EOF = True And RecDati.BOF = True Then
    ' ... ...
    ....in effetti non c'è nulla di sbagliato a priori nello scrivere solamente
    codice:
    Set RecDati = DB.Execute(sQL)
    ...l'errore è testare il RecDati.RecordCount in seguito

    Ciao sspintux

  9. #9
    Grazie del suggerimento che mi avete dato siete stati come al solito speciali.
    Con la proprietà EOF e BOF, ho risolto alla grande,Gazie milleAncora....

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.