Newsgroup: it.comp.appl.access
Titolo: OpenConnection con SQL Server Express 2005

 di questo file.
il problema probabilmente è questo, al posto di usare un DSN su file, crea e
usa un DSN utente.
Ho creato un DSN su file in previsione del suo utilizzo su diversi PC.
Morgan

 Ho creato un DSN su file in previsione del suo utilizzo su diversi PC.
visto che l'uso del dsn su file non è molto indicato..
----
ACC2000: Errors Occur When Using File DSNs in Access 2000
http://support.microsoft.com/kb/327268/en-us
----
e che non vuoi usare un dsn utente ti propongo una stringa per connetterti
senza nessun dsn.
---
Set cn = wrk.OpenConnection("Conn", dbDriverCompleteRequired, , _
  "ODBC;DRIVER=Sql
Server;Server=NomeMacchina\SqlExpress;Database=TuoDb;Trusted_Connection=yes;
DSN=;")
----
Trusted_Connection=yes indica la connessione trusted dove non è necessario
indicare utente e password.
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

 ha scritto nel
messaggio news:45609ada$0$9629$5fc...@news.tiscali.it...

OK,adesso funziona.
Vorrei concludere con un paio di domande.
Primo ,se volessi usare l'OpenConnection su un PC mentre il server
sta ,appunto, su un server di rete come faccio?
Secondo come fa l'istruzione OpenConnection a trovare fisicamente il server?
Morgan

dove nome macchina "può" essere un indirizzo ip qualsiasi
--
ac
y-1 = x

 Secondo come fa l'istruzione OpenConnection a trovare fisicamente il
server?
il server deve essere configurato per accettare connessioni remote, qui
trovi come fare.
----
How to configure SQL Server 2005 to allow remote connections
http://support.microsoft.com/kb/914277/en-us
How to connect to a named instance of SQL Server 2005 or SQL Server 2000 by
using the client tools in the earlier version of SQL Server
http://support.microsoft.com/kb/265808/en-us
----
poi ci pensa SqlBrowser a intercettare le richieste di connessione e a
reindirizzarle all'istanza  Sql Server express.
Bisogna anche fare alcune considerazioni sulla connessione di tipo trusted.
Se le macchine non fanno parte di un dominio NT la connessione trusted non
funziona anche se vai a creare gli stessi utenti con stesse password su
entrambe le macchine.
La macchina1 cercherà di autenticarsi sulla macchina2 con utente
"macchina1\Morgan" mentre la macchina2 accetta solo "macchina2\Morgan"
Se questo è il tuo caso usa l'autenticazione di Sql Server con nome utente e
password. Ovviamente dovrai abilitare il server per questo tipo di
connessione (da ssms click destro sul server poi proprietà e protezione)
quindi creare almeno un account per accedervi.
----
Assegnare i permessi in SQL Server.
http://www.microsoft.com/italy/technet/community/mvp/editoriali/permessi.mspx
----
è per la versione 2000 ma va bene lo stesso.


 ha scritto nel
messaggio news:45609ada$0$9629$5fc...@news.tiscali.it...

Scusa Giorgio ma avrei un'altro problema con la chiamata non riuscita
Perchè ,secondo te
Set wrk = DBEngine.CreateWorkspace("NewODBCDirect", "admin", "", dbUseODBC)
Set cn = wrk.OpenConnection("Conn", dbDriverCompleteRequired, , _
        "ODBC;DRIVER=Sql
Server;Server=MiaMacchina\SQLEXPRESS;Database=MioDB;Trusted_Connection=yes;D
SN=;")
Con questo costrutto funziona
strSQL = "DELETE FROM tblLotti WHERE [Quantita] = 0 AND [IDMagazzino] = " &
intMagazzino & ";"
E con questo no?E mi da chiamata non riuscita alla riga cn.Execute strSQL?
strSQL = "INSERT INTO tblProdotti (IDMagazzino,Codice,Nome) VALUES (" &
intMagazzino & "," & strCodice & "," & strNomeProdotto & ")"
cn.Execute strSQL
cn.Close
Set cn = Nothing
Set wrk = Nothing
Morgan

 intMagazzino & "," & strCodice & "," & strNomeProdotto & ")"
Ciao Morgan,
nel linguaggio Sql ansi le stringhe vanno racchiuse tra apici,
----
 strSQL = "INSERT INTO tblProdotti (IDMagazzino,Codice,Nome) VALUES (" &
 intMagazzino & ",'" & strCodice & "','" & strNomeProdotto & "')"
----
in tutti i casi per evitare l'errore in presenza dell'apice nella costante
letterale lo si radduppia
----
 strSQL = "INSERT INTO tblProdotti (IDMagazzino,Codice,Nome) VALUES (" &
 intMagazzino & ",'" & Replace(strCodice,"'","''") & "','" &
Replace(strNomeProdotto,"'","''") & "')"
----


 ha scritto nel
messaggio news:4562a85f$0$9622$5fc...@news.tiscali.it...

Grazie Giorgio
il problema era ,oltre al costrutto da te corretto, che nell'importazione il
campo
Codice era stato trasformato in int.Inoltre nel database di access da cui
sono
migrato il campo era impostato per non ammettere duplicati.Ora come e
soprattutto
da dove si imposta questa proprietà sel server non lo so ma evidentemente è
attiva.
Anzi se mi dai una dritta di dove andare a guardare te ne sarei grato.
Morgan


Trovato, dalla barra del menu Progettazione tabelle e poi Indici Chiavi.
Ciao