Newsgroup: it.comp.appl.access
Titolo: Db Access -> MySql Aruba

Salve,
 
tramite VBA di Access, vorrei inserire dei dati in una tabella del server di Aruba che utilizza MySql.
 
Adopero Microsoft Access 2013 64 bit.
 
Ho provato a creare un pulsante inserendo, all'evento clic, il seguente codice:
 
 
Dim oConn As ADODB.Connection
 
Dim rs As ADODB.Recordset
 
    Set oConn = New ADODB.Connection
 
    oConn.Open "DRIVER={MySQL ODBC 5.2 ANSI Driver};SERVER=indirizzoipserveraruba;DATABASE=nomesqlserveraruba;USER=miouser;PASSWORD=miapassword;Option=3"
 
    Set rs = New ADODB.Recordset
 
    strSQL = "INSERT INTO Categoria (ID, Categoria, Genere) VALUES ('1000', 'prova', '1')"
 
    rs.Open strSQL, oConn, adOpenDynamic, adLockOptimistic
 
    rs.Close
 
Ovviamente al mposto delle diciture inserite nella stringa di oConn.Open ho inserito le credenziali corrette. 
 
Trascurate la marte del recordset, che andrà modificata. Il problema nasce già sulla stringa di oConn.Open
 
l'errore visualizzato è il seguente:
 
Errore di run-time 
2147467259
(800040005):
 
[Microsoft][Driver Manager ODBC] Nome origine dati non trovato e driver predefinito non specificato
 
 
Premetto che oltre ad Access, non ho installato sul pc dove ho il database MDB, alcun software o componente di MySql, mentre da strumenti - riferimenti di VBA ho abilitato i seguenti riferimenti:
 
visual basic for applications
Microsoft Access 15.0 Object Library
Ole Automation, Microsoft Office 15.0 Access database enghine Object Library
Microsoft ActiveX Data Object 2.0 Library
Microsoft Outlook 15.00 Object Library
Microsoft Excel 15.00 Object Library
Microsoft Office 15.00 Object Library
Microsoft Word 15.00 Object Library
 
Ho provato inoltre a modificare la stringa del codice VBA, perchè ho letto su qualche forum che se adopero il 64bit, il riferimento ai driver poteva essere differente, ma il messaggio di errore non è mai cambiato. Ho modificato inserendo i seguenti parametri:
 
 
{MySQL ODBC 5.1 Driver}
{MySQL ODBC 5.2w Driver}
 
Al posto del:
 
{MySQL ODBC 5.2 Driver}
 
Avete idea di come guidarmi alla risoluzione del problema?
 
Grazie mille a tutti e buon anno.
 
SimoneB

Server di Aruba...?
Nel web...?
Hai un IP fisso....?
 
Nel web si lavora con applicazioni web non desk... sfugge qualche cosa...?
 
@Alex 

Ciao Alex e grazie, mi spiego meglio.
 
Ho un DB locale, sul mio PC dell'ufficio, in cui ho dei dati da pubblicare su di un sito WEB, presente su di un server MySql Aruba. Dovrei creare un'interazione fra il mio DB di Access ed Aruba.
 
Mi sono documentato meglio rispetto al post e pare sia un problema di Aruba che non concede i diritti di accesso ai propri server in esterno. 
 
Debbo quindi creare sul server WEB di Aruba una pagina di FORM ed una pagina PHP d'inserimento dati. Mentre su VBA di Access debbo trovare il modo di compilare la pagina FORM, inserita su WEB. Consigli?
 
Simone
 

OK! Ci sono riuscito.
 
In pratica occorre, inserire sullo spazio WEB di aruba, un file HTML adoperato come form di compilazione ed un file PHP adoperato per l'inserimento nel DB di Aruba dei dati. Da VBA di Access occorre impostare il seguente codice:
 
 
 
Dim MyBrowser As SHDocVw.InternetExplorer
Set MyBrowser = New SHDocVw.InternetExplorer
 
MyBrowser.Visible = False
MyBrowser.Navigate ("
http://www.miosito.com/form.html
")
MyBrowser.Document.All("name").Value = "1000"
MyBrowser.Document.All("address").Value = "Prova"
MyBrowser.Document.All("submit").Click
 
 
Ovviamente così non si vede l'inserimento ed il tutto avviene in modo silente, mettendo TRUE su MyBrowser.Visible invece viene palesata la procedura.
 
Mi sembra ovvio che "1000" e "Prova" possano essere sostituiti prelevando i dati da tabella o query.
 
Saluti


Se a te va bene questa soluzione... va bene a tutti.... ti rendi conto tuttavia che stai usando un'interfaccia WEB compilata in modalità HIDDEN, il che non ha nulla a che vedere con un normale interfacciamento di dati... che ovviamente come ti dicevo non si può fare...!
 
Secondo me tuttavia se tu fossi in grado di sviluppare un WEBSERVICE preposto a queste cose e poi usando SOAP, faresti una cosa decisamente più tecnica... molto più tecnica.
 
Questa soluzione proprio tecnica non lo è..., ma come dicevo se ti soddisfa siamo contenti tutti.
 
@Alex

 
 
 
non mi risulta che aruba lasci accedre ai db mssql neppure richiedendolo 
esplicitamente
 
 
quindi tramite applicazioni desktop non è fattibile
ciao


Interessante soluzione
E credo utile pure a molti che usano Aruba per tenere il sito web
Html e php si possono vedere?