Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    271

    VB Questo codice è corretto

    Private Sub cmdInvia_Click()
    If txtCognome = "" Or txtNome = "" Then
    MsgBox "Inserisci i campi obblibatori * mancanti", vbInformation
    Else
    DimiCognome , iNome
    iCognome = txtCognome
    iNome = txtNome
    Dim Cnn As ADODB.Connection
    Dim Rst As ADODB.Recordset
    Set Cnn = New Connection
    Set Rst = New Recordset
    Cnn.Open "Provider=............."
    Set Rst = Cnn.Execute("Select ........... From nomeTabella ...")
    Do While Not Rst.EOF
    If CampoNome = iNome And CampoCognome = iCognome Then
    MsgBox ("Nomi e cognome già presenti")
    Else
    Rst.AddNew
    Rst("Nome")="txtNome.text
    Rst("Cognome")="txtCognome.text
    Rst.Update
    Rst.MoveNext
    Loop
    Set Rst = Nothing
    Set Cnn = Nothing
    Exit Sub
    End If
    End If

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    271
    Qualcuno può dirmi se questo codice è corretto?

  3. #3
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    Private Sub cmdInvia_Click()
    If txtCognome = "" Or txtNome = "" Then
    MsgBox "Inserisci i campi obblibatori * mancanti", vbInformation
    Else
    DimiCognome , iNome
    iCognome = txtCognome
    iNome = txtNome
    Dim Cnn As ADODB.Connection
    Dim Rst As ADODB.Recordset
    Set Cnn = New Connection
    Set Rst = New Recordset
    Cnn.Open "Provider=............."
    Set Rst = Cnn.Execute("Select ........... From nomeTabella ...")
    Do While Not Rst.EOF
    If CampoNome = iNome And CampoCognome = iCognome Then
    MsgBox ("Nomi e cognome già presenti")
    Set Rst = Nothing
    Set Cnn = Nothing
    Exit Sub
    Else
    Rst.AddNew
    Rst("Nome")="txtNome.text
    Rst("Cognome")="txtCognome.text
    Rst.Update
    Rst.MoveNext
    Loop
    Set Rst = Nothing
    Set Cnn = Nothing
    End If
    End If

    Così dovrebbe andare......guarda la differenza
    se nome e cognome sono presenti chiudi la connessione ed esci

    se tutto è okay registri

    Non lo provato, tu devi dire se ti funziona............

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    271
    Mi dà questo errore
    Tipo definito dall'utente non definito
    Dim Cnn As ADODB.Connection

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    Non puoi fare l'addnew poichè il recordset che ti ritorna l'execute è di tipo readonly (sola lettura).
    Ans.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    271
    E quindi?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    E quindi quel codice non è corretto.
    Ans.

  8. #8
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    Crea un nuovo db con un solo campo che nomini Nome, per provare

    Metti nel progetto un modulo.bas e incolla questo:
    Global g_strConnectionString As String

    poi fai così:

    Private Sub cmdInvia_Click()
    'incolla questo come prima linea del pulsante
    g_strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
    & App.Path & "\NomeDelTuoDB.mdb; Persist Security Info=False"
    'il DB deve stare nella directory del progetto vb
    'ora g_strConnection contiene il riferimento alla connessione

    Dim dbConnAs New ADODB.Connection
    Dim strConnectionString As String
    Dim strSQL As String

    Dim iNome As String
    iNome = txtNome

    If txtNome = "" Then
    MsgBox "Inserisci i campi obblibatori * mancanti", vbInformation
    exit sub
    end if



    'Apro una connessione con il database
    dbConn.ConnectionString = g_strConnectionString
    dbConn.Open
    Dim bRes As Boolean

    bRes = controllanome(iNome, dbConn)
    If bRes = True Then
    beep
    MsgBox ("iNome già presente")
    dbConn.Close
    Set dbConn = Nothing
    else
    strSQL = "INSERT INTO Tabella (Nome) VALUES ('" & iNome & "',"')"
    'Tabella è il nome della tabella del tuo db
    'Nome è il campo
    'chiudi la connessione al database
    dbConn.Close
    Set dbConn = Nothing
    endif


    Questa è la funzione per verificare se iNome esiste già

    Private Function controllanome (ByVal nome1 As String, ByRef dbConn As ADODB.Connection) As Boolean

    Dim dbRec As New ADODB.Recordset
    Dim strSQL As String

    strSQL = "SELECT * FROM Tabella WHERE Nome = '" & nome1 & "'"
    DoEvents
    Set dbRec = dbConn.Execute(strSQL)
    controllanome = Not dbRec.EOF
    Set dbRec = Nothing
    End Function





    prova e fammi sapere.............

    link
    homepage http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/
    forum http://%77%77%77%2e%74%77%6f%72%6b%2...um/default.asp

  9. #9
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212

    Re: VB Questo codice è corretto

    il problema sta quà:

    Originariamente inviato da xit

    ...
    Dim Cnn As ADODB.Connection
    Dim Rst As ADODB.Recordset

    Set Cnn = New Connection
    Set Rst = New Recordset

    ...
    usa:

    Dim Cnn As New ADODB.Connection
    Dim Rst As New ADODB.Recordset

    e togli le due righe successive

    imposta anche la proprietà LockType del recordset di tipo Optimistic

    poi prima di impostare recordset e connection a Nothing devi chiuderli




  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    darkblOOd sai quello che dici???


    Spiegami perchè è sbagliato:

    Dim Cnn As ADODB.Connection
    Dim Rst As ADODB.Recordset

    Set Cnn = New Connection
    Set Rst = New Recordset

    dimmi un po'.
    Ans.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.