O Excel até permite o compartilhamento, via Ferramentas > Compartilhar Pasta de Trabalho, mas são tantos detalhes que precisam ser observados que o usuário precisa se adaptar ao recurso, sendo que na verdade o recurso deveria facilitar a vida dele.
Recentemente precisei fazer um sistema onde ocorria a leitura de dados de vários XLS's para gravar num outro XLS e este por sua vez, poderia estar aberto no momento da gravação.
Depois de pesquisar, escrever muido código e testar bastante, cheguei a conclusão de que a melhor forma era utilizar o Active Data Objects.
Segue um exemplo de código para leitura de dados de um arquivo XLS a partir de outro.
O melhor de tudo é que podemos utilizar a sintaxe SQL nos comandos, com algumas poucas adaptações é claro, que fará com que os desenvolvedores de banco de dados se sintam bem à vontade.
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim ssql As String
Sub teste()
'cria uma conexão ADO
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
'Na string de conexão, o caracter "aspas duplas" é substituído pelo
'correspondente em ASCII -> Chr(34)
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Planilha.xls" & _
";Extended Properties=" & Chr(34) & "Excel 8.0;HDR=Yes" & Chr(34)
'abre o recordset pelo nome da planilha
'Obs.:
'- No comando SELECT o nome da planilha vai entre chaves e
'com um "$" no final do nome
Set rst = cnn.Execute("Select * from [plan1$]")
MsgBox rst(0)
rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing
End Sub
Nenhum comentário:
Postar um comentário