Finestra di Login

di il
18 risposte

Finestra di Login

Buonasera a tutti , sono dinnanzi un quesito da porvi, sono nuovo nella programmazione e da poco tempo mi sto avventurando in questo mondo.
mi trovo a lavorare con visual studio e sto creando un programma semplice.
ho inserito la scheramata di login e fin qui nessun problematica con pochi semplici utenti
ma voglio ora modificarla e non creare degli utenti fissi e programmati ma gestibili da database.
e fino a qui riesco a fare il tutto .
il problema che voglio porvi è che voglio modificare l'apertura del form in base al tipo di utente.
avevo pensato di creare una colonna nel database dove posso inserire il nome del form a cui verra associato
naturalmente il database sara modificabile da un solo utente
come posso dare l'ordine .show variabile in base all'utente?

grazie mille a tutti

18 Risposte

  • Re: Finestra di Login

    drago1991 ha scritto:


    il problema che voglio porvi è che voglio modificare l'apertura del form in base al tipo di utente.
    Se sai come caricare i dati dal database, inserisci all'interno della tabella preposta un dato (nel tipo che preferisci, stringa, intero o altro) che ti consenta lato codice di selezionare un tipo diverso di finestra.

    Espressa in termini così generici, non è che si possono dare molte risposte.

    Sai accedere a un DB? Sai eseguire la query? Conosci la sintassi di base del linguaggio che stai usando?
    Se sì, fai una prova ed eventualmente approfondiamo quello che non va, altrimenti procedi per gradi documentandoti in merito a ciò che non sai fare.

    Ciao!
  • Re: Finestra di Login

    Ciao ti ringrazio intanto per la risposta
    Sto cercando di apprendere i database e come sono strutturati.
    Finora non li avevo mai utilizzati.
    Si un po' di linguaggio visual basic lo conosco ma sicuramente ho molto da imparare.
  • Re: Finestra di Login

    Per essere più specifico ogni user deve aprire una form specifica.
    Se user e psw non combaciano non deve aprire nulla
    Naturalmente tutto dallo stesso login
  • Re: Finestra di Login

    drago1991 ha scritto:


    ogni user deve aprire una form specifica.
    Questa non l'ho capita.
    Cioè vuoi dirmi che se hai 100 utenti tu dovrai preparare 100 form nel tuo programma ??

    Oppure intendevi "ogni tipo" di utente ??
    Se (ad esempio) hai tre tipi di utente, la cosa è semplice, e cioè (come ti ha detto Alka), nel tuo database aggiungi un campo "tipo di utente" (sempre come esempio) di tipo integer, dove dentro ci sarà 1, 2 o 3 a seconda del tipo di utente.
    Dopo il login, ti leggi il tupo di utente e farai
    
    Dim frm As Form
    Select Case TipoDiUtente
       Case 1
          frm = New FormUtente1
       Case 2
          frm = New FormUtente2
       Case 3
          frm = New FormUtente3
    End Select
    frm.ShowDialog(Me)
    frm.Dispose()
    
  • Re: Finestra di Login

    SirJo ha scritto:


    drago1991 ha scritto:


    ogni user deve aprire una form specifica.
    Questa non l'ho capita.
    Cioè vuoi dirmi che se hai 100 utenti tu dovrai preparare 100 form nel tuo programma ??

    Oppure intendevi "ogni tipo" di utente ??
    Se (ad esempio) hai tre tipi di utente, la cosa è semplice, e cioè (come ti ha detto Alka), nel tuo database aggiungi un campo "tipo di utente" (sempre come esempio) di tipo integer, dove dentro ci sarà 1, 2 o 3 a seconda del tipo di utente.
    Dopo il login, ti leggi il tupo di utente e farai
    
    Dim frm As Form
    Select Case TipoDiUtente
       Case 1
          frm = New FormUtente1
       Case 2
          frm = New FormUtente2
       Case 3
          frm = New FormUtente3
    End Select
    frm.ShowDialog(Me)
    frm.Dispose()
    
    Si il discorso è quello che , altrimenti potrei valutare se autorizzare l'accesso di ogni form solo a determinati utenti ma penso sia ancora più complesso.
    Dovrò studiare bene i database perché non ne so molto anzi quasi nulla
  • Re: Finestra di Login

    Esatto, devi studiarti i database perchè per ogni utente devi poter specificare nel database cosa possono fare o no.
    Ad esempio, se hai 10 Form, potresti mettere nel database 10 campi, chiamati da Form1 a Form10 (o quello che vuoi tu), di tipo booleano, e per ogni utente andrai a specificare se può accedere a quella form oppure no, così limiti ogni utente alle sole form che vuoi tu
  • Re: Finestra di Login

    Ciao, ti hanno risposto ovviamente con le soluzioni più adatte direi... fossi in te, se ancora non hai pratica, una volta individuata la tipologia di utente che si logga, ad esempio un admin o un semplice user... puoi mettere nel load delle form che ti interessano o nel Button di apertura delle form un controllo in base al campo utente...
    per capirci, quando ti logghi e leggi admin, quel valore lo metti in una posizione condivisa
    ad ogni pressione del Button per aprire la form metti un If campo condiviso = Admin allora apri altrimenti no... con tutte le opportune varianti.

    Inizia così, poi una volta presa pratica della situazione, puoi ottimizzare di molto la cosa...
  • Re: Finestra di Login

    Allora sto provando varie soluzioni.
    ho trovato questo video che diciamo assomiglia molto a cio che vorrei realizzare

    nella varie user type sono riportate le varie form di collegamento ma solo se hai user e psw che coincidono con il type nel database ne fai accesso


    ho provato a fare questa scrittura ma mi da errori e non mi permette di collegare nulla che sto sbagliando?? vi metto la scrittura qui:


    Imports System.Data
    Imports System.Data.OleDb

    Public Class Accedi

    Dim con As New OleDbConnection
    Dim strsql As String
    Dim ds As New DataSet
    Dim da As New OleDbDataAdapter
    Dim strconnection As String = ("Provider=Microsoft.ACEOLEDB.12.0; Data Source=C:\Users\simon\OneDrive\Desktop\Casa\Protezione civile\S.I.G.C\Database\AccessoRecordSystem.accdb")
    Private Sub Accedi_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub

    Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click

    End Sub

    Private Sub btnAccedi_Click(sender As Object, e As EventArgs) Handles btnAccedi.Click
    If con.State = ConnectionState.Open Then con.Close()
    con.Close()
    If txtNomeUtente.Text = "" Then
    MsgBox("Inserire Nome Utente", MsgBoxStyle.Critical)
    ElseIf TxtPassword.Text = "" Then
    MsgBox("Inserire Password", MsgBoxStyle.Critical)
    Else
    Dim strname = txtNomeUtente.Text
    Dim strpass = TxtPassword.Text
    ds.Clear()
    strsql = "select * from utenti where Nome utenti ='" + txtNomeUtente.Text + "'and Password ='" + TxtPassword.Text + "'and settore ='" + ComboBoxsettoredicompetenza.SelectedItem + "'"
    da = New OleDbDataAdapter(strsql, con)
    da.Fill(ds, "utenti")
    If ds.Tables("utenti").Rows.Count <> 0 Then
    MsgBox("Accesso Fallito")
    ElseIf ComboBoxsettoredicompetenza.SelectedItem = "Amministratore" Then
    Amministratore.Show()
    Me.Hide()
    ElseIf ComboBoxsettoredicompetenza.SelectedItem = "Segreteria" Then
    Segreteria.Show()
    Me.Hide()


    End If



    End If

    End Sub

    Private Sub btnIndietro_Click(sender As Object, e As EventArgs) Handles btnIndietro.Click
    Close()
    End Sub
    End Class


    GRAZIE MILLE
  • Re: Finestra di Login

    Ciao,

    Oltre a postare il tuo codice, se ci aggiungi anche l'errore che ti dà in fase di debug magari ti si può aiutare !!

    Occhio poi dove usi il tuo codice per "hobby" o per lavoro, che ha molte cose che devi assolutamente cambiare e migliorare.

    Byeeee
  • Re: Finestra di Login

    Il codice che hai postato è illeggibile, innanzitutto perchè non lo hai messo tra i tag corretti, e poi non essendo identato non si capisce dove inizia e finisce un IF e tutto il resto, mi viene mal di testa a leggerlo.
    Per favore modifica il post, mettici il tag corretto e identa un po' il codice
  • Re: Finestra di Login

    Indenta... e spiega perché "mi dà errori" non vuol dire nulla e non aiuta
  • Re: Finestra di Login

    oregon ha scritto:


    Indenta
    Infatti avevo il dubbio di come si scriveva
  • Re: Finestra di Login

    SirJo ha scritto:


    oregon ha scritto:


    Indenta
    Infatti avevo il dubbio di come si scriveva

    Hai ragione perdonami innanzitutto devo anche dirti che rispetto al video utilizzo un database access ora ti link gli errori
    [img]
    https://ibb.co/55PHJt
    https://ibb.co/SrgXHh
  • Re: Finestra di Login

    Https://ibb.co/55PHJt
    https://ibb.co/SrgXHh
Devi accedere o registrarti per scrivere nel forum
18 risposte