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

    VB... Insert into... Probelema

    Ciao a tutti.

    Devo inserire su un db access un nuovo record attraverso delle text in VB..
    ora non riesco a capire perchè non lo fa.

    Il codice è:

    Dim db As Database
    Dim sql As String
    Dim rs As Recordset


    Set db = OpenDatabase("C:\Documenti\rub.mdb")

    Set rs = db.OpenRecordset(sql)

    sql = "Insert into Rubrica(Cognome, Nome, Indirizzo, Città,) values('" & txtcogno.Text & "','" & txtnome.Text & "','" & txtind.Text & "','" & txtcit.Text & "')"

    db.Execute (sql)

    rs.Close


    Sapreste aiutarmi?
    Grazie Sara!

  2. #2
    Utente di HTML.it L'avatar di sebamix
    Registrato dal
    Aug 2000
    Messaggi
    1,028
    Set rs = db.OpenRecordset(sql)
    Innanzitutto è inutile aprire un recordset per l'operazione che vuoi fare (soprattutto perchè sql è ancora vuota come stringa);

    ... Città,) ..
    Prova a togliere la virgola dopo città;

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    23
    Ciao Sara81iT
    Allora intanto ti consiglierei di utilizzare non DAO ( come stai facendo ora ) ma ADO. Te lo consignlio perchè è da molto tempo che lo utilizzo ed è molto più flessibile e molto ma molto sicuro.
    Comunque l'aperture della connessione va bene :

    Set db = OpenDatabase("C:\Documenti\rub.mdb")

    Ma poi per eseguire una semplice insert non importa aprire anche un recordset ( che l'hai aperto anche male.....prima devi valorizzare la stringa sql e poi creare il recordset) :

    sql = "Insert into Rubrica(Cognome, Nome, Indirizzo, Città) values('" & txtcogno.Text & "','" & txtnome.Text & "','" & txtind.Text & "','" & txtcit.Text & "')"

    Set rs = db.OpenRecordset(sql)

    Ma basta utilizzare il metodo della connessione EXECUTE che ti permette di eseguire una query in aggiornamento :

    db.Execute (sql)

    Ciao

  4. #4

    UFFIIIIIII

    Innanzitutto grazie !!

    ora il codice è il seguente:

    Set db = OpenDatabase("F:\Sara\visual basic\Rubrica\rub.mdb")

    sql = "Insert into Rubrica(Cognome, Nome, Indirizzo, Città) values('" & txtcogno.Text & "','" & txtnome.Text & "','" & txtind.Text & "','" & txtcit.Text & "')"

    Set rs = db.OpenRecordset(sql)

    rs.MoveLast

    db.Execute (sql)

    rs.Close



    Ora mi da un errore di run-time 3346 : Il numero dei valori nella query non corrisponde a quello dei campi di destinazione.


    Ho controllato che sul Db i campi avessero proprio quel nome ed effattivamente è così.....Cosa può essere?
    Grazie

    Sara

  5. #5
    prova cosi'

    codice:
    Set db = OpenDatabase("F:\Sara\visual basic\Rubrica\rub.mdb") 
    
    sql = "Insert into Rubrica(Cognome, Nome, Indirizzo, Città) values("
    
    SQL = SQL & "'" & Replace(txtcogno.Text, "'", "''") & "',"
    SQL = SQL & "'" & Replace(txtnome.Text, "'", "''") & "',"
    SQL = SQL & "'" & Replace(txtind.Text, "'", "''") & "',"
    SQL = SQL & "'" & Replace(txtcit.Text, "'", "''") & "')"
            
    db.Execute (sql)

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.