..|| Blog || Produkti/Storitve || MExcel || MDodatki || 300 nasvetov ||..

Kreiranje tabele v Access-u z Excel-om VBA

Pomoč pri izdelavi makrov

Kreiranje tabele v Access-u z Excel-om VBA

OdgovorNapisal/-a deraleks » To feb 04, 2020 2:46 pm

Z uporabo Excel VBA želim skreirati novo tabelo v Acces-u.

Po korakih sem prišel do spodnje kode.
Koda: Izberi vse
     Option Explicit
     
     Dim a As Byte
     Dim b As Byte
     Dim c As Byte
     Dim d As Byte
     Dim e As Byte
     Dim f As Byte
     Dim g As Byte
     Dim x As Byte
     Dim n As Long

Sub addcolumns_II()

    n = 1
    a = 1
    b = 2
    c = 3
    d = 4
    e = 5
    f = 6
    g = 7

    Dim dbConnectStr As String
    Dim tabela_ime As String
   
    tabela_ime = n & "," & a & "," & b & "," & c & "," & d & "," & e & "," & f & "," & g

    Dim cnt As ADODB.Connection
    dbConnectStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & "C:\VBA\A\vaja.accdb"

    Set cnt = New ADODB.Connection
   
    With cnt
        .Open dbConnectStr
        .Execute "CREATE TABLE" & tabela_ime & "([No0] Integer," & "[No1] Byte, " & "[No2] Byte, " & "[No3] Byte, " & "[No4] Byte, " & "[No5] Byte, " & "[No6] Byte, " & "[No7] Byte)"
    End With
   
    Set cnt = Nothing

End Sub


V tej kodi mi prevajalnik javi napako:
Sintaksna napaka v izjavi CREATE TABLE.


Želel bi, da ima novo kreirana tabela ime sestavljeno iz prej definiranih spremenljivk kot je to definirano v tabela_ime.

Pred več kot 10 leti mi je nekaj podobnega delovalo v Excel VBA 2003.

:| ?

lp
deraleks
 
Prispevkov: 24
Pridružen: Sr feb 28, 2007 10:28 pm



Matjazev.NET
 

Re: Kreiranje tabele v Access-u z Excel-om VBA

OdgovorNapisal/-a admin » Sr feb 05, 2020 8:27 am

Pozdravljeni,

Če namesto .Execute zapišete Debug.Print, da sploh vidite, kaj želite poslati v Access oz. kakšen SQL stavek želite izvesti, boste dobili sledeč izpis:

Koda: Izberi vse
CREATE TABLE1,1,2,3,4,5,6,7([No0] Integer,[No1] Byte, [No2] Byte, [No3] Byte, [No4] Byte, [No5] Byte, [No6] Byte, [No7] Byte)


Ta stavek je očitno napačen iz več razlogov. Najprej vam manjkajo presledki, saj ni jasno, kaj je SQL ukaz in kaj je ime tabele. Torej potrebno je narediti dva presledka:

Koda: Izberi vse
Debug.Print "CREATE TABLE " & tabela_ime & " ([No0] Integer," & "[No1] Byte, " & "[No2] Byte, " & "[No3] Byte, " & "[No4] Byte, " & "[No5] Byte, " & "[No6] Byte, " & "[No7] Byte)"


Sedaj dobite sledeč ukaz:

Koda: Izberi vse
CREATE TABLE 1,1,2,3,4,5,6,7 ([No0] Integer,[No1] Byte, [No2] Byte, [No3] Byte, [No4] Byte, [No5] Byte, [No6] Byte, [No7] Byte)


Ta bi že skoraj bil OK, vendar pa so problem vejice, saj se te v imenu datoteke ne smejo pojaviti. Če nujno želite vejice v imenu, potem je potrebno ime tabele zapreti v oglate oklepaje:

Koda: Izberi vse
Debug.Print "CREATE TABLE [" & tabela_ime & "] ([No0] Integer," & "[No1] Byte, " & "[No2] Byte, " & "[No3] Byte, " & "[No4] Byte, " & "[No5] Byte, " & "[No6] Byte, " & "[No7] Byte)"


S tem dobite veljaven SQL ukaz, ki se v Accessu izvede, vendar to res ni primerno ime za tabelo!!! A če je to tisto kar želite, potem je to odgovor

Koda: Izberi vse
.Execute "CREATE TABLE [" & tabela_ime & "] ([No0] Integer," & "[No1] Byte, " & "[No2] Byte, " & "[No3] Byte, " & "[No4] Byte, " & "[No5] Byte, " & "[No6] Byte, " & "[No7] Byte)"
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3548
Pridružen: Sr jul 20, 2005 10:06 pm


Vrni se na VBA

Kdo je prisoten

Po forumu brska: 0 registriranih uporabnikov in 0 gostov

cron