Newsgroup: it.comp.appl.access
Titolo: Esecuzione di script SQL da VBA

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Salve a tutti,
Ho la necessità di eseguire alcuni script SQL relativi alla rimozione
e creazione di elementi di database tramite VBA. Premesso che gli
script funzionano egregiamente se eseguiti da Query Analyzer (anche
perchè sono stati creati direttamente da Enterprise Manager e
opportunamente tagliati delle parti non necessarie) ho riscontrato
l'impossibilità di eseguirli tramite codice VBA. Questo il frammento:
strSQL = "if exists (select * from dbo.sysobjects " & _
"where id = object_id(N'[dbo].[tbl_tmpmarche]') " & _
"and OBJECTPROPERTY(id, N'IsUserTable') = 1)" & vbNewLine & _
"drop table [dbo].[tbl_tmpmarche]" & vbNewLine & _
"GO" & vbNewLine & _
"CREATE TABLE [dbo].[tbl_tmpmarche] (" & vbNewLine & _
"   [SiglaFornitore] [char] (3) COLLATE Latin1_General_CI_AS NOT NULL
," & vbNewLine & _
"   [NomeFornitore] [varchar] (30) COLLATE Latin1_General_CI_AS NOT
NULL " & vbNewLine & _
") ON [PRIMARY]" & vbNewLine & _
"GO" & vbNewLine & _
"ALTER TABLE [dbo].[tbl_tmpmarche] WITH NOCHECK ADD " & vbNewLine & _
"   CONSTRAINT [PK_tbl_tmpmarche] PRIMARY KEY  CLUSTERED " &
vbNewLine & _
"   (" & vbNewLine & _
"       [SiglaFornitore]" & vbNewLine & _
"   )  ON [PRIMARY] " & vbNewLine & _
"GO"
Set cmd = New ADODB.Command
cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandType = adCmdText
cmd.CommandText = strSQL
cmd.Execute
Set cmd = Nothing
L'errore che ottengo è alla terza linea di codice SQL,
ovvero in corrispondenza del primo GO.
Grazie a chi avrà la pazienza di dare un aiuto...
- --
Matteo Palmieri - Cybercreations
www.cybercreations.it
-----BEGIN PGP SIGNATURE-----
Version: 6.5.8ckt
iQA/AwUBPXogTcg6j/rIOLofEQI7egCg5Ge34dmsuA1zJsTpFxfY1fnD2doAn1pl
mDPAMpl+W1iF7CRSnjKXnlHX
=r7P7
-----END PGP SIGNATURE-----

 ovvero in corrispondenza del primo GO.
Senti... ma invece di postare tutto quel pappier (si scrive cosě? Boh!) di
codice astruso, perchč non esponi quello che devi fare e vediamo come
risolverlo?!?
Antonio

 vediamo come risolverlo?!?
Eseguire degli script SQL. Con Query Analyzer funzionano, da codice
VBA no.
- --
Matteo Palmieri - Cybercreations
www.cybercreations.it
-----BEGIN PGP SIGNATURE-----
Version: 6.5.8ckt
iQA/AwUBPXyCnsg6j/rIOLofEQL9WgCgqlY9MqmXTPZJXGbdQ9D7qo6/sfgAoPcU
GcP73F6j6szGLNqQ0Q0kuKa2
=jlBK
-----END PGP SIGNATURE-----

 VBA no.
Che adč uno script SQL?
Io vorrei che tu mi dicessi: devo fare una query che fa questo e questo,
oppure, devo cancellare una tabella, aggiunger eun campo, modificare un
altro campo ecc...
Antonio

 modificare un altro campo ecc...
Devo:
- - cancellare delle relazioni
- - cancellare delle tabelle
- - rinominare delle tabelle
- - creare delle tabelle (impostando anche proprietà estese, quali
formato, numero di decimali...)
- - creare delle relazioni
Tutto questo su un database residente su SQL Server.
- --
Matteo Palmieri - Cybercreations
www.cybercreations.it
-----BEGIN PGP SIGNATURE-----
Version: 6.5.8ckt
iQA/AwUBPXyKqsg6j/rIOLofEQLf6wCg12lKAtRNEbERNA7O98ZQGnylfp4An1TP
UzyReZmPe+rfhBGwfQ5zi2Eq
=8xqZ
-----END PGP SIGNATURE-----

 Tutto questo su un database residente su SQL Server.
Uh?
Non è un database access?
Antonio

 Non è un database access?
Access lo uso come FE. Poi mi appoggio a SQL Server (o MSDE per i
clienti con meno esigenze) per il BE.
- --
Matteo Palmieri - Cybercreations
www.cybercreations.it
-----BEGIN PGP SIGNATURE-----
Version: 6.5.8ckt
iQA/AwUBPXybLsg6j/rIOLofEQLHoQCfUEnBZgPISvTbTkrt8qkPP9v+h7sAn03b
geB4nHIgGxzWgJdijjmBsU7E
=1GVB
-----END PGP SIGNATURE-----

 clienti con meno esigenze) per il BE.
Mattč...
Se č una cosa fattibile con comandi access, alcuni suggerimenti te li ho
dati, altrimenti direi che siamo un po' OT no?
Antonio

 ha scritto nel
messaggio news:aldam1$m0j$1...@serv1.albacom.net...

Io sono fissato con le Stored Procedure (a quanto pare sono l'unico in
questo NG). Perchè non ne crei una dove utilizzi all'interno anche le SP di
sistema come ad esempio sp_dropdevice, sp_rename, ecc..?
Le sto "affrontando" da poco senza grossi risultati per il momento (vedi
post "(Lungo) Anomalia nel passaggio parametri") però mi sembra siano
l'unica soluzione per la manipolazione degli archivi in generale.
Tornando al tuo problema, hai provato a togliere l'IF per vedere se il
problema sta nel drop table o nella verifica della condizione?
Fabio

 ecc..?
Problema risolto in maniera egregia... Talmente banale che quasi mi
vergogno...
Grazie 1000
- --
Matteo Palmieri - Cybercreations
www.cybercreations.it
-----BEGIN PGP SIGNATURE-----
Version: 6.5.8ckt
iQA/AwUBPXymL8g6j/rIOLofEQLGiACgiRYLgEco3+nHlSc0twLD/zAEgU0Ani9l
nhLXSiAsumgi+xblWIX6bTAz
=lUCA
-----END PGP SIGNATURE-----