IMPORTAR EXCEL DIRETO PARA MSFLEXGRID

USUARIO.EXCLUIDOS 06/07/2005 15:23:19
#92483
Olah amigos,

Tava precisando importar uma tabela do excel direto para um controle
msflexgrid. Achei algumas possiblidades mas nenhuma funcionou.
Dentre elas:

Dim oConn As ADODB.Connection
Dim oCmd As ADODB.Command
Dim oRS As ADODB.Recordset

Set oConn = New ADODB.Connection
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:    este.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"

' cria o objecto command e define a conexao ativa
Set oCmd = New ADODB.Command
oCmd.ActiveConnection = oConn

' abre a planilha
oCmd.CommandText = "SELECT * from [Plan1$]"

' cria o recordset com os dados
Set oRS = New ADODB.Recordset
oRS.Open oCmd, , adOpenKeyset, adLockOptimistic

nesse ponto eu deveria apontar para o grid

set msflexgrid1.DataSource = oRS

======= mas dah erro de Type Mismatch

Alguem tem algum exemplo?

Valeu

knsuper
JEAN.JEDSON 06/07/2005 15:31:39
#92485
não dá para fazer direto, sem usar isso:
' cria o objecto command e define a conexao ativa
Set oCmd = New ADODB.Command
oCmd.ActiveConnection = oConn
' abre a planilha
oCmd.CommandText = "SELECT * from [Plan1$]"

fazendo apenas:
' cria o recordset com os dados
Set oRS = New ADODB.Recordset
oRS.Open "SELECT * from [Plan1$]", oConn, adOpenKeyset, adLockOptimistic
USUARIO.EXCLUIDOS 06/07/2005 15:46:47
#92489
pronto... consegui...:

Function Carrega()
Dim dados As String

dados = "c:    este.xls"

' Conecta o controle ADODC com o banco de dados
With Adodc1
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:    este.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"
.RecordSource = "SELECT * from [Plan1$]"
End With

With VSFlexGrid1
.Editable = flexEDKbdMouse
Set .DataSource = Adodc1
End With
End Function

vlw
knsuper
Tópico encerrado , respostas não são mais permitidas