Cercare una specifica tabella in un db.accdb con vb.net

di il
9 risposte

Cercare una specifica tabella in un db.accdb con vb.net

Buongiorno, sono un principiante della programmazione, e non riesco a trovare un comando che mi restituisca un valore se c'è o meno una tabella all'interno del mio file. Vi scrivo il comando che uso per copiare una tabella esistente con un nome diverso per farvi capire cosa uso. Come ho detto sono un principiante e non saprei spiegarmi meglio. Con questo codice cliccando su un tasto creo una nuova tabella uguale ad una standard per non stare a rifare tutta la struttura.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & directory & "\ArchivioOI\" & RB_Sottostante.Text & ".accdb")
Dim cm As New OleDb.OleDbCommand("SELECT * INTO " & TBDataFine.Text & " FROM 20200101", cn)
cn.Open()
On Error Resume Next
cm.ExecuteNonQuery()
cn.Close()
End Sub

9 Risposte

  • Re: Cercare una specifica tabella in un db.accdb con vb.net

    C'e' un ERRORE CONCETTUALE alla FONTE.

    I casi in cui ha senso creare delle tabelle da tabelle gia' esistenti si possono contare sulle dita della mano di un monco!

    Quindi, PARTENDO dal fatto che l'operazione NON HA SENSO,
    PERCHE' la vuoi fare?
    QUALE PROBLEMA stai tentando di risolvere con questo approccio TOTALMENTE SBAGLIATO?
  • Re: Cercare una specifica tabella in un db.accdb con vb.net

    Quello che ho postato è solo per far vedere cosa sto usando, non sapendolo spiegare. Comunque il mio problema è nella lettura dei dati. faccio una serie di letture da diverse tabelle e se la tabella non esiste mi da errore. Prima di fare la lettura vorrei sapere sa la tabella esiste. I nomi delle tabelle sono dei numeri che formano una data. Io uso un ciclo che modifica la variabile che costituisce il nome della tabella. Alcuni giorni non esistono e quindi non li devo richiamare. Spero di essere stato più chiaro.
  • Re: Cercare una specifica tabella in un db.accdb con vb.net

    Ma non è meglio leggere prima i nomi delle tabelle del data base ?
  • Re: Cercare una specifica tabella in un db.accdb con vb.net

    patel ha scritto:


    Ma non è meglio leggere prima i nomi delle tabelle del data base ?
    Era proprio quello che chiedeva lui

    Sul database ti tipo MSQL si usa fare una query:
    select * from INFORMATION_SCHEMA.tables
    e si analizza il risultato, su database di tipo accdb non saprei, ma probabilmente sarà molto simile
  • Re: Cercare una specifica tabella in un db.accdb con vb.net

    SirJo ha scritto:


    Era proprio quello che chiedeva lui
    Non mi pare, ha chiesto "Prima di fare la lettura vorrei sapere sa la tabella esiste".
    Se legge i nomi delle tabelle col codice che gli hai suggerito non deve controllarne l'esistenza
  • Re: Cercare una specifica tabella in un db.accdb con vb.net

    Pensavo ci fosse una query che restituisse un FALSE o TRUE. Senza andare a leggere tutti i nomi delle tabelle
  • Re: Cercare una specifica tabella in un db.accdb con vb.net

    Qui hai un datatable con tutti i nomi di tabella contenuti. Poi dentro lì puoi controllare.
    
        Sub Main()
            Dim userTables As DataTable = Nothing
            Dim connection As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection()
            connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Access\Test.accdb;Persist Security Info=False"
            ' We only want user tables, not system tables
            Dim restrictions() As String = New String(3) {}
            restrictions(3) = "Table"
            connection.Open()
            ' Get list of user tables
            userTables = connection.GetSchema("Tables", restrictions)
            connection.Close()
            ' Add list of table names to listBox
            Dim i As Integer
            For i = 0 To userTables.Rows.Count - 1 
                Console.WriteLine(userTables.Rows(i)(2).ToString())
            Next
            Console.ReadLine()
        End Sub
        
  • Re: Cercare una specifica tabella in un db.accdb con vb.net

    Aggiungo una funzione che ha in ingresso il datatable e un nome di tabella e restituisce true/false se c'è o non c'è
    
       Function IsTableFound(userDataT As DataTable, accdbTable As String) As Boolean
            IsTableFound = (userDataT.Select("TABLE_NAME='" & accdbTable & "'").GetUpperBound(0) <> -1)
        End Function
    
  • Re: Cercare una specifica tabella in un db.accdb con vb.net

    Grazie Antonio_S_54, ore è tutto piu facile
Devi accedere o registrarti per scrivere nel forum
9 risposte