Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    165

    [vb6] Select Con Where Che Varia A Seconda Dell Utente Loggato

    Ringrazio anticipatamente tutti...

    Avrei questo problema: devo fare una select che mette o no la clausa WHERE, a seconda dell'utente che si è loggato.

    Eseguendo quella che metterò qui sotto non mi ritorna nessun errore ma non fa quello che deve fare in caso di utente <> da "Amministratore" ovvero, deve includere nella select anche la clausula WHERE

    [CODE]
    sSql = sSql & "SELECT *" & vbCrLf
    sSql = sSql & "FROM Gest_rapp" & vbCrLf
    sSql = sSql & "WHERE data >= '" & da & "' AND "
    sSql = sSql & "data <= '" & a & "' OR "
    sSql = sSql & "(Tipo_lavoro = '" & cbo_tip.Text & "' OR Tipo_lavoro IS NULL) OR "
    sSql = sSql & "(N_rapp = '" & cbo_num(0).Text & "' OR N_rapp IS NULL) OR "
    sSql = sSql & "(Cliente = '" & cbo_cli(0).Text & "' OR N_rapp IS NULL) "
    If ty_ute <> "Amministratore" Then
    sSql = sSql & "AND id_ute = '" & ute & "'"
    End If

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    165
    scusate ma ho un po di difficolta a mettere il codice dentro il tag CODE

    codice:
    sSql = sSql & "SELECT *" & vbCrLf
                sSql = sSql & "FROM Gest_rapp" & vbCrLf
                sSql = sSql & "WHERE data >= '" & da & "' AND "
                sSql = sSql & "data <= '" & a & "' OR "
                sSql = sSql & "(Tipo_lavoro = '" & cbo_tip.Text & "' OR Tipo_lavoro IS NULL) OR "
                sSql = sSql & "(N_rapp = '" & cbo_num(0).Text & "' OR N_rapp IS NULL) OR "
                sSql = sSql & "(Cliente = '" & cbo_cli(0).Text & "' OR N_rapp IS NULL) "
                If ty_ute <> "Amministratore" Then
                        sSql = sSql & "AND id_ute = '" & ute & "'"
                End If

  3. #3
    Non ho capito perché metti tutti quei vbCrLf, la quesry la devi eseguire o stampare??
    Che database usi? Che tipi hai usato nei vari campi della tabella?

    Se per il campo "data" hai usato il tipo specifico per data/ora, non puoi usare gli apici per effettuare il confronto, piuttosto il #. Se sono numeri non si usano apici. Gli apici si usano solo per i testi.
    Chi non cerca trova.

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Consiglio:
    Non usare i vbCrLf: non servono a niente.

    Di norma, quando si compone una query piuttosto articolata, è necessario verificarla PRIMA di darla in pasto al metodo Open del Recordset o Execute della Connection.


    codice:
    Debug.Print sSql 
    Stop
    e ti guardi il risultato nella finestra Immediate di VB.



    Ma perchè non usi i Command e Parametri?
    Perchè ti vuoi far male da solo?


  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    165
    Ciaooooo..

    Grazie della risposta

    premessa : sono un novellino in vb6

    il data che uso è SQL SERVER 2005

    il problema sta nella if e non nella data. Praticamente scritta cosi è come se non ci fosse (la if) e quindi non mi fa la WHERE.

    mi potresti dare una mano???


    grazie ancora

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se è nella if allora controlla cosa c'è in

    ty_ute
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da tas
    Non ho capito perché metti tutti quei vbCrLf, la quesry la devi eseguire o stampare??
    Che database usi? Che tipi hai usato nei vari campi della tabella?
    Concordo.

    Originariamente inviato da tas
    Se per il campo "data" hai usato il tipo specifico per data/ora, non puoi usare gli apici per effettuare il confronto, piuttosto il #. Se sono numeri non si usano apici. Gli apici si usano solo per i testi.
    Mica vero...
    Dipende dal database che si usa.
    Per la data In Access ci vuole il cancelleto, ma in SQLServer, Oracle, DB2, ecc. si usa l'apice.


  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    165
    grazie GIBRA

    Cmq. si...
    la variabile ty_ute l'ho dichiarata "Public" nel modulo e andando in debug è inizializzata in modo giusto

    Non so che pesci prendere...

    Non mi piace neanche il pesce

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non devi vedere come è inizializzata ma quanto vale quando viene eseguita la if.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Premetto che non ho mai utilizzato database in VB6, ma quella mi pare l'occasione ideale per una query parametrica...
    Amaro C++, il gusto pieno dell'undefined behavior.

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.