Olá. Estou aqui com um problema já há alguns dias que não comsigo resolver.
Criei um UserForm no excel com 4 textboxs(ID,Style,Fromstore,ToStore). E criei uma base de dados no access com os mesmos dados(ID,Style,Fromstore,ToStore).
Até agora consigo gravar os dados introduzidos no Userform do Excel na Base de Dados do Access.
Mas agora queria fazer o contrário, imprimir os dados da base de dados do Access numa folha de cálculo do excel ou na Userform criada!
Estou a tentar utilizar o exemplo do livro "Excel2010-VBA&Macros":
Sub GetUnsentTransfers()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim WSOrig As Worksheet
Dim WSTemp As Worksheet
Dim sSQL as String
Dim FinalRow as Long
Set WSOrig = ActiveSheet
‘Build a SQL String to get all fields for unsent transfers
sSQL = “SELECT ID, Style, FromStore, ToStore, Qty, FROM tblTransfer”
sSQL = sSQL & “ WHERE Sent=FALSE”
‘ Path to Transfers.mdb
MyConn = Set cnn = New ADODB.Connection
With cnn
.Provider = “Microsoft.Jet.OLEDB.4.0”
.Open MyConn
End With
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseServer
rst.Open Source:=sSQL, ActiveConnection:=cnn, _
CursorType:=AdForwardOnly, LockType:=adLockOptimistic, _
Options:=adCmdText
‘ Create the report in a new worksheet
Set WSTemp = Worksheets.Add
‘ Add Headings
Range(“A1:F1”).Value = Array(“ID”, “Style”, “From”, “To”, “Qty”)
‘ Copy from the recordset to row 2
Range(“A2”).CopyFromRecordset rst
‘ Close the connection
rst.Close
cnn.Close
‘ Format the report
FinalRow = Range(“A65536”).End(xlUp).Row
‘ If there were no records, then stop
If FinalRow = 1 Then
Application.DisplayAlerts = False
WSTemp.Delete
Application.DisplayAlerts = True
WSOrig.Activate
MsgBox “There are no transfers to confirm”
Exit Sub
End If
‘ Format column F as a date
Range(“F2:F” & FinalRow).NumberFormat = “m/d/y”
‘ Show the userform – used in next section
frmTransConf.Show
‘ Delete the temporary sheet
Application.DisplayAlerts = False
WSTemp.Delete
Application.DisplayAlerts = True
End Sub
Já modifiquei parte do código, como a localização do ficheiro do access e do nome da tabela na BD.
Agora está a dar um erro na linha "rst.Open Source:=sSQL, ActiveConnection:=cnn, _
CursorType:=AdForwardOnly, LockType:=adLockOptimistic, _
Options:=adCmdText" - Não foi fornecido um valor para um ou mais parâmetros necessários. Verifiquei e o AdForwardOnly=Empty
Estou aberto a sugestões!
PS:Estou a utilizar o Office2010. No entanto o formato do ficheiro do access é 2002-2003. O do excel acho que é 2010.