VB6 COM EXCEL
Pessoal,
Peguei aqui mesmo no site um exemplo para interagir o VB com Excel.
Tá quase bom mas por algum motivo não aparece dados no form do vb quando a célula é numérica.
Tem algum macete pra tratar esse tipo de dado?
Mostro diretamente em um textbox e fica em branco, pergunto se é numérico (is numeric) dá como numérico, movo pra uma variável (long, integer ou double) e o resultado é 0 (zero).
Alguém saberia me dizer o que está acontecendo?
A intenção é ler, alterar algumas células e depois salvar a planilha.
Segue o código ligeiramente alterado:
---------------------------------------------------------
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=" & App.Path & "\ESTOQUE.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"
Set oCmd = New ADODB.Command
oCmd.ActiveConnection = oConn
oCmd.CommandText = "SELECT * from [Plan1$]"
Set oRS = New ADODB.Recordset
oRS.Open oCmd, , adOpenKeyset, adLockOptimistic
Dim vNum As Integer
If Not IsNull(oRS(1)) Then
Text1.Text = oRS(1) 'Coluna B
Else
Text1.Text = ""
End If
If Not IsNull(oRS(2)) Then
If IsNumeric(oRS(2)) Then
vNum = oRS(2)
Text2.Text = vNum 'Coluna C
MsgBox vNum
Else
Text2.Text = oRS(2) 'Coluna C
End If
Else
Text2.Text = ""
End If
If Not IsNull(oRS(3)) Then
Text3.Text = oRS(3) 'Coluna D
Else
Text3.Text = ""
End If
If Not IsNull(oRS(4)) Then
Text4.Text = oRS(4) 'Coluna E
Else
Text4.Text = ""
End If
If Not IsNull(oRS(5)) Then
Text5.Text = oRS(5) 'Coluna F
Else
Text5.Text = ""
End If
If Not IsNull(oRS(6)) Then
Text6.Text = oRS(6) 'Coluna G
Else
Text6.Text = ""
End If
--------------------------------------------------------------
O erro é na maldita Coluna C.
Obrigado,
Peguei aqui mesmo no site um exemplo para interagir o VB com Excel.
Tá quase bom mas por algum motivo não aparece dados no form do vb quando a célula é numérica.
Tem algum macete pra tratar esse tipo de dado?
Mostro diretamente em um textbox e fica em branco, pergunto se é numérico (is numeric) dá como numérico, movo pra uma variável (long, integer ou double) e o resultado é 0 (zero).
Alguém saberia me dizer o que está acontecendo?
A intenção é ler, alterar algumas células e depois salvar a planilha.
Segue o código ligeiramente alterado:
---------------------------------------------------------
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=" & App.Path & "\ESTOQUE.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"
Set oCmd = New ADODB.Command
oCmd.ActiveConnection = oConn
oCmd.CommandText = "SELECT * from [Plan1$]"
Set oRS = New ADODB.Recordset
oRS.Open oCmd, , adOpenKeyset, adLockOptimistic
Dim vNum As Integer
If Not IsNull(oRS(1)) Then
Text1.Text = oRS(1) 'Coluna B
Else
Text1.Text = ""
End If
If Not IsNull(oRS(2)) Then
If IsNumeric(oRS(2)) Then
vNum = oRS(2)
Text2.Text = vNum 'Coluna C
MsgBox vNum
Else
Text2.Text = oRS(2) 'Coluna C
End If
Else
Text2.Text = ""
End If
If Not IsNull(oRS(3)) Then
Text3.Text = oRS(3) 'Coluna D
Else
Text3.Text = ""
End If
If Not IsNull(oRS(4)) Then
Text4.Text = oRS(4) 'Coluna E
Else
Text4.Text = ""
End If
If Not IsNull(oRS(5)) Then
Text5.Text = oRS(5) 'Coluna F
Else
Text5.Text = ""
End If
If Not IsNull(oRS(6)) Then
Text6.Text = oRS(6) 'Coluna G
Else
Text6.Text = ""
End If
--------------------------------------------------------------
O erro é na maldita Coluna C.
Obrigado,
Amigo qual o valor que vc esta colocando?
Testei aki e funcionou sem erros.
Testei aki e funcionou sem erros.
Se eu preencho a célula com "AA", por exemplo, aparece, mas se eu preencho com qualquer número (tentei 14, 10, 1, 3, ...) não aparece nada.
Por isso eu acho que o problema está no tipo de dados.
Por isso eu acho que o problema está no tipo de dados.
Eu testei aki com o valor 8 e não apresentou erros nao
Tópico encerrado , respostas não são mais permitidas