Aggiungere tabelle con record in db access

di il
36 risposte

Aggiungere tabelle con record in db access

Ciao a tutti, sto cercando questa cosa in rete ma non trovo granchè, forse si puo fare o forse non lo trovo perchè non è possibile?
Ho collegato un db.mdb access al mio progetto in vb.net, premetto che ho pensato a tutto quello che mi serve e il db dovrebbe rimanere così penso, ma in caso ci fosse necessità, mediante codice vb è possibile aggiungere tabelle e record in un db già associato al progetto?

Lo chiedo perchè ovviamente se effettuo questa modifica nel db da access poi non posso usare il db modificato in vb senza ricaricarlo.

Non so se sono stato chiaro ma se è possibile potete aiutarmi o indicarmi dove studiare questa cosa?

Grazie

36 Risposte

  • Re: Aggiungere tabelle con record in db access

    Col comando Create table
    https://stackoverflow.com/questions/25822458/creating-tables-in-access-using-vb-net
  • Re: Aggiungere tabelle con record in db access

    Perfetto.... grazie come sempre, vado a studiare la situazione, faccio quslcge prova e solo dopo se ho problemi.... chiefo nuovamente...
  • Re: Aggiungere tabelle con record in db access

    Ciao eccomi nuovamente.... allora, ho visto un po di cose e alla fine sono riuscito a creare quello che mi serve, uso una cosa del genere... è solo un test
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Appoggio\testDB.mdb"
            Dim sQuery As String = "CREATE TABLE Marco (" &
                "id INTEGER IDENTITY(1,1) PRIMARY KEY NOT NULL," &
                "Nome VARCHAR(255)," &
                "Cognome VARCHAR(255)," &
                "Soprannome 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
        End Sub
    Quindi ovviamente funziona, è abbastanza semplice l'unica cosa che non riesco a fare è cambiare il nome della Tabella da creare, nell'esempio crea Marco ma se volessi scegliere il nome? ho provato varie soluzioni ma non riesco, vorrei inserire un nome da una textboxe per esempio ma sbaglio qualcosa nella sintassi, ho provato virgolettandolo etc.... boh... non so farlo, cosa dovrei fare?

    Grazie in anticipo

    P.S. ovviamente il Database è già creato mi servirebbe per aggiunte eventuali...
  • Re: Aggiungere tabelle con record in db access

    No... vabbè, scusate.... ho risolto... bastava mettere "CREATE TABLE " & textbox1.text & "
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Appoggio\testDB.mdb"
            Dim sQuery As String = "CREATE TABLE " & TextBox1.Text & " (" &
                "id INTEGER IDENTITY(1,1) PRIMARY KEY NOT NULL," &
                "Nome VARCHAR(255)," &
                "Cognome VARCHAR(255)," &
                "Soprannome 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
        End Sub
    Come non detto... Grazie comunque
  • Re: Aggiungere tabelle con record in db access

    Ciao a tutti, sapreste dirmi per quale motivo, il codice di seguito postato che in altro form come test funziona bene e adesso in questo definitivo mi da errore di sintassi in CREATE TABLE
    Dim provider As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    Dim datafie As String = "D:\DBPWD.mdb;Persist Security Info=True;Jet OLEDB:Database Password=passuord"
    Dim connString As String = provider & datafie
    If tbDATABASE.Text = "" Then
    MsgBox("Inserire il nome del Database da CREARE!", MsgBoxStyle.Information)
    Exit Sub
    End If
    If cbDATABASE.Items.Contains(tbDATABASE.Text) Then
    MsgBox("Database già presente in archivio!", MsgBoxStyle.Exclamation)
    tbDATABASE.Text = ""
    Exit Sub
    Else
    cbDATABASE.Items.Add(tbDATABASE.Text$)
    tbDATABASE.Text = ""
    If cbDATABASE.Items.Count > 0 Then
    My.Settings.comboitems.Clear()
    For Each i As String In cbDATABASE.Items
    My.Settings.comboitems.Add(i)
    Next
    My.Settings.Save()
    Else
    My.Settings.comboitems.Clear()
    End If
    Dim sQuery As String = "CREATE TABLE " & tbDATABASE.Text & " (" &
    "id INTEGER IDENTITY(1,1) PRIMARY KEY NOT NULL," &
    "Dominio VARCHAR(255)," &
    "Username VARCHAR(255)," &
    "Password VARCHAR(255)," &
    "Pin VARCHAR(255)," &
    "Link VARCHAR(255)," &
    "Note1 VARCHAR(255)," &
    "Note2 VARCHAR(255)," &
    "Note3 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("Database CREATO con successo!", MsgBoxStyle.Information)
    myconnection.Close()
    Catch ex As Exception
    MsgBox(ex.Message)
    myConnection.Close()
    End Try
    End If
    per quale motivo secondo voi?
  • Re: Aggiungere tabelle con record in db access

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

    Ok e cosa c'è di sbagliato li?
    E sopratutto perché non da sempre errore visto che in una form che uso per i test funziona?

    Se sai indicarmi il perchè, mi fai un favore almeno capiaco qualcosa in piu.

    Grazie tante...
  • Re: Aggiungere tabelle con record in db access

    Tu usi Access o SQL Server?
  • Re: Aggiungere tabelle con record in db access

    Io uso access
  • Re: Aggiungere tabelle con record in db access

    Quindi perché scrivi IDENTITY che si usa con SQL Server?

    Con Access (ovvero con un file mdb, accdb) devi usare AUTOINCREMENT

    Non so cosa tu stia facemdo (provi con SQL Server e poi scrivi per Access?) ma gli errori sono chiari.
  • Re: Aggiungere tabelle con record in db access

    OK già è qualcosa, purtroppo sto cercando un po di documentazione in merito ma sono molto confuso, facevo in questo modo (sbagliando) ma funzionava, poi messo sul form che mi occorre non va.
    quindi il problema è nel campo ID oltre ad autonumber cos'altro sbaglio? perchè ovviamente se lo sostituisco a IDENTITY non funziona è ovvio...
  • Re: Aggiungere tabelle con record in db access

    Scusa ... cosa non funziona ancora?
  • Re: Aggiungere tabelle con record in db access

    Da comunque di errore sintassi in CREATE TABLE
  • Re: Aggiungere tabelle con record in db access

    Cisa hai scrittovrsattamente? Io ti avevo detto cosa scrivere

    AUTOINCREMENT
    https://www.w3schools.com/sql/sql_autoincrement.as

    l'hai fatto?
Devi accedere o registrarti per scrivere nel forum
36 risposte