Condividi tramite

Riferimenti dinamici

Anonimo
2012-09-19T20:43:39+00:00

Sono sempre su un form di word 2010. Dopo che l'utente ha inserito tutti i campi richieste dal form, clicca il pulsante salva. A questo punto vado a sostituire con i campi del form i campi nel documento word (e fino quì tutto ok), vorrei però salvare tali dati in una tabella access. Senza dover inserire manualmente i riferimenti di access(dall'editor VBA), penso sia possibile farlo in modo dinamico sempre da codice VBA. C'è un esempio?

Grazie Fulvio.

Microsoft 365 e Office | Word | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2012-09-20T13:01:57+00:00

Ho sempre trovato esempi che quando utilizzavono codice relativo al'altro prodotto, necessitavano della libreria di riferimento dello stesso. Ma se esiste una modalità alternativa ben venga.

 

Sia windows 7 che office 2010 sono a 32 bit

 

Grazie

Se l'unica cosa che devi fare è Leggere/Scrivere un db di Access da Excel, i riferimenti possiamo non metterli. Così non sei legato a quella particolare versione di Access.

Vedi qui come modificare lastringa di connessione al db secondo la tua versione:

http://www.connectionstrings.com/access-2007

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2012-09-20T10:47:24+00:00

Grazie per l'imm ediata risposta.

Il codice in effetti non è complicato, quando lo si conosce, però ho due problemi:

  1. la mia intenzione era quella di inserire il riferimento a "microsoft Acces 14.0 object library" e non vedo dove vena eseguito l'aggancio"
  2. Durante l'esecuzione mi blocco al momento dell'apertura del DB sull'istruzione

  With cn

.CursorLocation = 1

.Open "Provider=Microsoft.Jet.OLEDB.4.0; " _

        & "Data Source=D:\Profili\u086520\Desktop\Assemblea\Assemblea.accdb"

    End With

(il fatto che va a capo senza continuazione è a causa di questo editor.)

errore numero    -2147467259

con il messaggio "Formato del Database non riconosciuto". Ancora grazie

Fulvio

Io ti ho postato un codice che non richiede nessun riferimento alla libreria di Access.

Perchè vuoi mettere il riferimento?

Per il secondo problema: versioni di Win e Office sono a 32 bit?

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2012-09-20T05:18:08+00:00

Sono sempre su un form di word 2010. Dopo che l'utente ha inserito tutti i campi richieste dal form, clicca il pulsante salva. A questo punto vado a sostituire con i campi del form i campi nel documento word (e fino quì tutto ok), vorrei però salvare tali dati in una tabella access. Senza dover inserire manualmente i riferimenti di access(dall'editor VBA), penso sia possibile farlo in modo dinamico sempre da codice VBA. C'è un esempio?

Grazie Fulvio.

Vuoi *lavorare* Access da Word senza dover utilizzare i riferimenti ad Access e ADO?

Private Sub CommandButton1_Click()

On Error GoTo RigaErrore

    Dim cn As Object

    Dim cmd As Object

    Set cn = CreateObject("ADODB.Connection")

    Set cmd = CreateObject("ADODB.Command")

    With cn

        .CursorLocation = 1

        .Open "Provider=Microsoft.Jet.OLEDB.4.0; " _

        & "Data Source= PathNomeDelDB.mdb"

    End With

    Set cmd.ActiveConnection = cn

    With cmd

        .CommandText = "INSERT INTO Tabella1(Campo1,Campo2, Campo3) VALUES (@Campo1, @Campo2, @Campo3) "

        .CommandType = 1

        .Parameters("@Campo1").Value = Me.TextBox1.Text

        .Parameters("@Campo2").Value = Me.TextBox2.Text

        .Parameters("@Campo3").Value = Me.TextBox3.Text

        .Execute

    End With

RigaChiusura:

    If Not cn Is Nothing Then

        If cn.State = 1 Then

            cn.Close

        End If

    End If

    Set cmd = Nothing

    Set cn = Nothing

    Exit Sub

RigaErrore:

    MsgBox Err.Number & vbNewLine & Err.Description

    Resume RigaChiusura

End Sub

In questo esempio ho tre campi sulla tabella del db e li popolo con il contenuto di tre TextBox posizionate sulla UserForm.

Path e nome del db (Data Source), nome tabella e nome dei campi vanno modificati con i tuoi.

La risposta è stata utile?

0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-09-20T11:41:14+00:00

    Ho sempre trovato esempi che quando utilizzavono codice relativo al'altro prodotto, necessitavano della libreria di riferimento dello stesso. Ma se esiste una modalità alternativa ben venga.

    Sia windows 7 che office 2010 sono a 32 bit

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-09-20T08:21:01+00:00

    Grazie per l'imm ediata risposta.

    Il codice in effetti non è complicato, quando lo si conosce, però ho due problemi:

    1. la mia intenzione era quella di inserire il riferimento a "microsoft Acces 14.0 object library" e non vedo dove vena eseguito l'aggancio"
    2. Durante l'esecuzione mi blocco al momento dell'apertura del DB sull'istruzione

      With cn

    .CursorLocation = 1

    .Open "Provider=Microsoft.Jet.OLEDB.4.0; " _

            & "Data Source=D:\Profili\u086520\Desktop\Assemblea\Assemblea.accdb"

        End With

    (il fatto che va a capo senza continuazione è a causa di questo editor.)

    errore numero    -2147467259

    con il messaggio "Formato del Database non riconosciuto". Ancora grazie

    Fulvio

    La risposta è stata utile?

    0 commenti Nessun commento