Domanda

Diciamo che ho un foglio di calcolo di Excel incorporato in un modulo di Microsoft Access. Chiamo la cornice dell'oggetto

ExcelFrame

e aggiungo una casella di testo nel modulo denominato

txtA1

ed io aggiungo un pulsante sul form denominato

cmdInsert

Voglio scrivere "Ciao Mondo" nella casella di testo, fare clic sul pulsante e farlo apparire nella cella A1 su quel foglio di calcolo. Cosa fare VBA che uso per raggiungere questo obiettivo?

Grazie

È stato utile?

Soluzione

È possibile automatizzare Excel, scrivere il valore al foglio di lavoro, quindi aggiornare la cornice dell'oggetto.

Private Sub cmdInsert_Click()
    Dim strPath As String
    Dim oExcel As Object
    Dim oSheet As Object

    Set oExcel = CreateObject("Excel.Application")
    oExcel.Visible = True

    strPath = Me.ExcelFrame.SourceDoc
    'Debug.Print strPath '
    oExcel.Workbooks.Open strPath
    Set oSheet = oExcel.ActiveSheet
    'Debug.Print oSheet.Name '

    oSheet.Range("A1").Value = Me.txtA1
    oExcel.ActiveWorkbook.Save
    oExcel.Quit
    Set oSheet = Nothing
    Set oExcel = Nothing
    'acOLEUpdate action requires Enabled = True '
    'and Locked = False '
    Me.ExcelFrame.Enabled = True
    Me.ExcelFrame.Locked = False
    Me.ExcelFrame.Action = acOLEUpdate
    Me.txtA1.SetFocus
    Me.ExcelFrame.Enabled = False
    Me.ExcelFrame.Locked = True
End Sub

Modifica : L'esempio è stato basato su un file di lavoro esterno che è collegato come sorgente per la struttura oggetto della maschera.

Per collegare un foglio di lavoro, scegliere l'opzione " Crea da file " pulsante di scelta, selezionare la casella " link " controllo, e sfogliare per selezionare la cartella di lavoro. Questo è il modo in cui l'ho fatto con Access 2007. Se non ricordo male, era simile con Access 2003.

Altri suggerimenti

Non è mai troppo tardi, giusto?

prevedono che è già stato creato l'oggetto di Excel (come in OP):

Dim wb As Excel.Workbook, ws As Excel.Worksheet
Set wb = Me.ExcelFrame.Object
Set ws = wb.Worksheets(1)
ws.range("a1")= "Hello world"

Si noti che questo codice richiede un riferimento a MS Excel in VBA.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top