Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Salvare un Nome in database

    Ciao a tutti ho un programmino che salva dei nomi in un database access premetto che uso ADO e VB 6
    (Esempio) se l'utente salva un Nome tipo "Mario Rossi" ma dentro il dtabase Quel nome esiste già io dovrei intercettarlo e fargli cambiare nome
    Posto il codice che uso per salvare
    [PHP]Private Sub cmdSave_Click()
    On Error Resume Next
    Controllocaselle
    If ControlloCaselleX = False Then
    Exit Sub
    End If
    Rs.AddNew
    Rs("nome") = txtNome.Text
    End Sub[PHP]
    I'll see you on the dark side of the moon

  2. #2
    Questa è la prima volta che uso il forum dopo il restyling ed ho sbagliato
    Chiedo scusa intanto ringrazio tutti coloro che vorranno aiutarmi
    I'll see you on the dark side of the moon

  3. #3
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao axsw,
    così controlli se nome e cognome, e ecc. .. , sono presenti nel DB:
    codice:
    ' Controlla che il professionista ed il progetto NON sia inserito già nel BD:
            RSTctr.Source = "SELECT Nome, Cognome, NomeFile FROM TblAnagraficaPROF WHERE Nome='" & FrmAnagProf.TxtPr1.Text & "' And Cognome='" & FrmAnagProf.TxtPr2.Text & "' And  NomeFile= '" & NomeNF & "'"
            RSTctr.Open , Cns1
            
            ' Il Professionista è presente nel DB, esce dalla routine:
            If RSTctr.EOF = False And RSTctr.BOF = False Then
                MsgBox "Il professionista: " & FrmAnagProf.TxtPr1.Text & " " & FrmAnagProf.TxtPr2.Text & " che ha redatto il ....... " & NomeNF & Chr(13) _
                & "è già registrato nel database.", vbInformation + vbOKOnly, " ........... "
            End If
    LM

  4. #4
    Ciao e grazie L.Mondi ho provato e modificato il codice che mi hai mandato siccome io ho solo una casella ti testo da controllare
    ma non mi riconosce il file NomeFile= '" & NomeNF & "'"
    questo è il mio codice
    codice:
    ' Controlla che il professionista ed il progetto NON sia inserito già nel BD:
            RSTctr.Source = "SELECT Nome, NomeFile FROM TblClienti WHERE Nome='" & FrmMain.txtnome.Text & "' And  NomeFile= '" & nome & "'"
            RSTctr.Open , Cns1
            
            ' Il Professionista è presente nel DB, esce dalla routine:
            If RSTctr.EOF = False And RSTctr.BOF = False Then
                MsgBox "Il professionista: " & FrmMain.txtnome.Text & " " & FrmMain.txtnome.Text & NomeNF & Chr(13) _
                & "è già registrato nel database.", vbInformation + vbOKOnly, " ........... "
            End If
    Ciao e grazie
    I'll see you on the dark side of the moon

  5. #5
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Prova così:
    codice:
    ' Controlla che il professionista ed il progetto NON sia inserito già nel BD:
            Rs.Source = "SELECT nome FROM TblAnagraficaPROF WHERE nome='" & TuoFrm.txtNome.Text & "'"
            Rs.Open , Cns1   '(Cns1 nome della connessione)
            
        ' Il Professionista è presente nel DB, esce dalla routine:
            If Rs.EOF = False And Rs.BOF = False Then
                MsgBox "Il professionista: " & TuoFrm.txtNome.Text & Chr(13) _
                & "è già registrato nel database.", vbInformation + vbOKOnly, " ........... "
                Exit Sub
            End If
    LM

  6. #6
    L.Mondi non funge cmq quando esguo la procedura la connessione è già aperta
    eccoti il codice forse devi spiegarmi cos'è "RSTctr "
    codice:
    ' Controlla che il professionista ed il progetto NON sia inserito già nel BD:
            RSTctr.Source = "SELECT Nome, NomeFile FROM Clienti WHERE Nome='" & FrmMain.txtnome.Text & "'"
            
            ' Il Professionista è presente nel DB, esce dalla routine:
            If RSTctr.EOF = False And RSTctr.BOF = False Then
                MsgBox "Il professionista: " & FrmMain.txtnome.Text & " " & FrmMain.txtnome.Text & Chr(13) _
                & "è già registrato nel database.", vbInformation + vbOKOnly, " ........... "
            End If
    Comunque grazie
    I'll see you on the dark side of the moon

  7. #7
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Non è sufficiente dire non funge.
    Che errore ti dà?
    RSTctr è il nome dichiarato del RecordSet, che mi sembra tu chiami Rs .
    Ti aggiungo anche le dichiarazioni:
    codice:
    Dim Cns1 As New ADODB.Connection
        Dim Rs As New ADODB.Recordset
        
        'Esegue la connessione con il DataBase TblAnagraficaPROF:
            With Cns1
                .ConnectionString = DataConnessione
                .CursorLocation = adUseClient   'tipo di cursore
                .Mode = adModeShareDenyNone     'nessuna limitazione
                .CommandTimeout = 15
                .Open
            End With
        
        ' Controlla che il professionista ed il progetto NON sia inserito già nel BD:
            Rs.Source = "SELECT nome FROM TblAnagraficaPROF WHERE nome='" & TuoFrm.txtNome.Text & "'"
            Rs.Open , Cns1
            
        ' Il Professionista è presente nel DB, esce dalla routine:
            If Rs.EOF = False And Rs.BOF = False Then
                MsgBox "Il professionista: " & TuoFrm.txtNome.Text & Chr(13) _
                & "è già registrato nel database.", vbInformation + vbOKOnly, " ........... "
                Exit Sub
            End If
    LM

  8. #8
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    A ben guardare mi sembra che ci sia una duplicazione (in rosso):
    "SELECT Nome, NomeFile FROM Clienti WHERE Nome='" & FrmMain.txtnome.Text & "'"
    LM

  9. #9
    Erore= Errore di compilazione Variabile non definita
    Io la connessione la apro così:
    In un Modulo
    codice:
    Option Explicit
    
    Public Cn As New ADODB.Connection
    Public Rs As New ADODB.Recordset
    
    Sub connetti()
       With Cn
          .ConnectionString = "Provider = Microsoft.Jet.OleDB.4.0;" & _
                              "Data source=" & App.Path & "\Fatture.mdb"
                              'nella prima riga si specifica il provider
                              'nella seconda il percorso al db
          .ConnectionTimeout = 5 'numero dei secondi di timeout
          .CursorLocation = adUseClient 'tipo di cursore
          .Mode = adModeShareDenyNone 'nessuna limitazione
          .Open 'apertura ricordarsi di chiuderla
       End With
       With Rs
          .ActiveConnection = Cn ' imposta a che connessione si riferisce
          .LockType = adLockOptimistic ' imposta il tipo di lock
       End With
    End Sub
    Poi nell'vento load del Form
    codice:
    Private Sub Form_Load()
       Call connetti
        Rs.Open "SELECT * FROM Clienti"
    Infine la procedura Salva
    codice:
    ' Controlla che il professionista ed il progetto NON sia inserito già nel BD:
     --errore-->  RSTctr .Source = "SELECT Nome, NomeFile FROM Clienti WHERE Nome='" & FrmMain.txtnome.Text & "'"
            
            ' Il Professionista è presente nel DB, esce dalla routine:
            If RSTctr.EOF = False And RSTctr.BOF = False Then
                MsgBox "Il professionista: " & FrmMain.txtnome.Text & " " & FrmMain.txtnome.Text & Chr(13) _
                & "è già registrato nel database.", vbInformation + vbOKOnly, " ........... "
            End If
    Ciao e grazie per la tua pazienza
    I'll see you on the dark side of the moon

  10. #10
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Scusa ma non leggi quello che scrivo.
    RSTctr è il nome dichiarato del RecordSet, che mi sembra tu chiami Rs
    Pertanto ti dà variabile non definita. Infatti tu dichiari: Public Rs As New ADODB.Recordset. Qundi cambia RSTctr in Rs
    e poi togli , NomeFile
    Leggi il post precedente.
    LM

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.