Aggiungere tabelle con record in db access

di il
36 risposte

36 Risposte - Pagina 2

  • Re: Aggiungere tabelle con record in db access

    Si ho sostituito quello che mi hai suggerito ma non va ugualmente, lo strano è che nel form di test funzionava bene (anche con quell'errore)
    Dim sQuery As String = "CREATE TABLE " & tbDATABASE.Text & " (" &
    "id INTEGER AUTONUMBER(1,1) PRIMARY KEY NOT NULL," &
    "Usr VARCHAR(255)," &
    "Pwd VARCHAR(255)," &
    "Tre VARCHAR(255)," &
    "Quattro VARCHAR(255)," &
    "Cinque VARCHAR(255)," &
    "Sei VARCHAR(255)," &
    "Ultimo VARCHAR(255)" &
    ")"
    Dim myconnection As New OleDbConnection(connString)
    Dim dbcmd As New OleDbCommand
    Try
    myconnection.Open()
    dbcmd.Connection = myconnection
    dbcmd.CommandText = sQuery
    dbcmd.ExecuteNonQuery()
    MsgBox("creata")
    myconnection.Close()
    Ho provato togliendo la possibilità di variare il nome dalla textboxe e ha funzionato... ma ci sarà un errore il quel tratto che non riesco a capire?
    ho fatto anche la prova "stupida" di fare copia\incolla dal progetto test dove funziona ma niente...
  • Re: Aggiungere tabelle con record in db access

    Scusa vuoi rileggere il post con la linea che ti ho suggerito? Non mi pare di avere scritto (1,1). Era

    Id AUTOINCREMENT PRIMARY KEY NOT NULL
  • Re: Aggiungere tabelle con record in db access

    Si ho scritto come hai consigliato tu ma da sempre errore di sintassi..... strano che nel form di test funzionava...
    ho provato eliminando la scrittura del nome da textboxe e stranamente ha funzionato, ma questa cosa non mi quadra
    Dim sQuery As String = "CREATE TABLE " & tbDATABASE.Text & " (" &
    "id INTEGER AUTONUMBER(1,1) PRIMARY KEY NOT NULL," &
    "Usr VARCHAR(255)," &
    "Pwd VARCHAR(255)," &
    "Tre VARCHAR(255)," &
    "Quattrosto VARCHAR(255)," &
    "Cinque VARCHAR(255)," &
    "Sei VARCHAR(255)," &
    "Ultimo VARCHAR(255)" &
    ")"
    Dim myconnection As New OleDbConnection(connString)
    Dim dbcmd As New OleDbCommand
    Try
    myconnection.Open()
    dbcmd.Connection = myconnection
    dbcmd.CommandText = sQuery
    dbcmd.ExecuteNonQuery()
    MsgBox("creata")
    myconnection.Close()
    Catch ex As Exception
    MsgBox(ex.Message)
    myconnection.Close()
    End Try
    boh....
  • Re: Aggiungere tabelle con record in db access

    Ma scusa... io leggo nel tuo codice

    AUTONUMBER(1,1)

    ma deve essere solo

    AUTOINCREMENT
  • Re: Aggiungere tabelle con record in db access

    Niente sempre errore.... ho provato sia con AUTOINCREMENT che con AUTOINCREMENT(1,1)
    c'è un errore di sintassi continua a dirmi
  • Re: Aggiungere tabelle con record in db access

    Se non erro (1,1) serve per indicare da che numero id deve partire e di quanto aumentare... quindi va inserito no?
  • Re: Aggiungere tabelle con record in db access

    Solo con IDENTITY e non con AITOINCREMENT

    Esattamente quale frase usi adesso per la CREATE?
  • Re: Aggiungere tabelle con record in db access

    Allora, ricapitoliamo...

    Usavo IDENTITY (1,1) ma poi ha cominciato a dare errore, tranne se impongo il nome e non lo stabilisco da textboxe... lo so non ha senso ma è cosi.

    Quindi sotto suggerimento ho messo tuttenle varianti da te suggerite sia con (1,1) che senza ma stesso risultato

    Mi rimane da provare IDENTITY senza (1,1) e lo provo tra poco.

    Per quale motivo se metto un nome fisso e non da texrboxe però scrive la tabella? (Con IDENTITY (1,1))

    Faccio l'ultima prova e ti aggiorno... altrimenti studionuna soluzione alternativa
  • Re: Aggiungere tabelle con record in db access

    Mi sembra ci sia parecchia confusione

    IDENTITY(1,1) funziona solo se usi SQL Server

    Se usi Access allora AUTOINCREMENT senza le parentesi

    Se hai ALTRI errori vedi dove sono, non in queste istruzioni
  • Re: Aggiungere tabelle con record in db access

    A me questo codice funziona
       Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            CreateDatabase("F:\Download\MyfirstDB.mdb", , 5, )
            System.Threading.Thread.Sleep(5)
            Dim sSQL As String = ""
            Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;data source=F:\Download\MyfirstDB.mdb")
            sSQL = sSQL & "Create Table [" & TextBox1.Text & "]"
            sSQL = sSQL & "( [ID] Autoincrement"
            sSQL = sSQL & ", [NOME] varChar(50) Null"
            sSQL = sSQL & ", [COGNOME] varChar(50) Null"
            sSQL = sSQL & ", [TELEFONO] Integer"
            sSQL = sSQL & ")"
            con.Open()
            ExecuteSQL(con, sSQL)
            con.Close()
            con = Nothing
        End Sub
  • Re: Aggiungere tabelle con record in db access

    Ok teato anche questo e vi aggiorno.

    A tra poco
  • Re: Aggiungere tabelle con record in db access

    Anche questo? Perché che differenza c'è con quelli che ti ho detto di fare fino ad ora?
  • Re: Aggiungere tabelle con record in db access

    Niente... tranne un po di sintassi il concetto è identico e infatti non mi funziona, da sempre errore di sintassi nel comando create table...

    Ora provo a zippare e allegare questa form
  • Re: Aggiungere tabelle con record in db access

    Ecco, ho messo il progetto qui se volete dare uno sguardo

    Premetto che potreste trovare anche altri errori non legati alla funzione di creazione Tabella ma ci sto lavorando quindi sarebbero consigli ben accetti ma errori solo di test per ora.

    https://www.myqnapcloud.com/smartshare/6e1f1j59np2m2628vvvxaxc1_6gUhaJh


    grazie
  • Re: Aggiungere tabelle con record in db access

    Primo: tbDATABASE.Text è vuoto

    Secondo: ti avevo detto
    "id AUTOINCREMENT PRIMARY KEY NOT NULL,"

    e non

    "id INTEGER AUTOINCREMENT PRIMARY KEY NOT NULL,"


    Basta che metti un break prima di eseguire la CREATE ed esamini il contenuto della variabile
Devi accedere o registrarti per scrivere nel forum
36 risposte