EXCEL PARA ACCESS 2000 COM VB6 URGENTE

JINFRJ 23/11/2006 17:31:26
#185967
estou criando um programa para migrar varios arquivos do excel pelo VB mais o mesmo ao ser executado so estou conseguindo os dados de Texto mais o numero e data não esta sendo exibido.
ONBASS 23/11/2006 18:34:57
#185987
como vc está importando esses dados?
JINFRJ 23/11/2006 18:59:17
#185993
o erro esta dando no campo aniversario

Private Sub CmdProcessar_Click()
Dim gnumero As String
If List1.ListCount > 0 Then
ProgressBar1.Min = 0
ProgressBar1.Max = List1.ListCount - 1
For a = 0 To List1.ListCount - 1

'cria uma conexão ADO
Set oConn = New ADODB.Connection
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Dir1.Path & "\" & List1.List(a) & ";" & _
"Extended Properties=""Excel 8.0;HDR=no;"";"

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

' abre a planilha
oCmd.CommandText = "select * from [FCadastro Clientes$]"

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

With ors
sq = "Select * from Tabela1 where numero='" & ors(4) & "'"
dyn.Open sq, meubd, adOpenDynamic, adLockPessimistic
If dyn.EOF Then
dyn.AddNew
b = 1
gserv = 9999
While Not ors.EOF
If b = 2 Then
dyn!numero = ors(4)
gnumero = ors(4)
ElseIf b = 3 Then
dyn!nome2 = ors(1)
ElseIf b = 4 Then
dyn!endereco = ors(1)
ElseIf b = 5 Then
dyn!cep = ors(1)
ElseIf b = 6 Then
dyn!telefone = ors(1)
dyn!termo = ors(3)
ElseIf b = 7 Then
dyn!aniversario = ors(1)
dyn!espelho = ors(3)
ElseIf b = 8 Then
dyn!profissao = ors(1)
ElseIf b = 9 Then
dyn!indicacao = ors(1)
dyn!obs = ors(3)
ElseIf b = 10 Then
dyn!email = ors(1)
ElseIf b = 11 Then
dyn!documento = ors(1)
End If

If Trim(ors(0)) = "DATA" Then
gserv = b + 1
c = 1
End If

If b > gserv Then
sq = "Select * from Tabela2 where numero='" & gnumero & "'"
dyn1.Open sq, meubd, adOpenDynamic, adLockPessimistic
' If dyn1.EOF Then
If ors(1) <> "" Then
dyn1.AddNew
dyn1!numero = gnumero
dyn1!Item = Val(c)
dyn1!Data = Trim(ors(0))
dyn1!servicos = ors(1)
dyn1!profissional = ors(2)
dyn1!recepcionista = ors(3)
dyn1!pontos = Trim(ors(4))
dyn1!obs = Trim(ors(5))
dyn1.Update
End If
' End If
c = c + 1
dyn1.Close
End If
If b > 70 Then
sq = "Select * from Tabela3 where numero='" & gnumero & "' "
dyn2.Open sq, meubd, adOpenDynamic, adLockPessimistic
' If dyn2.EOF Then
If ors(1) <> "" Then
dyn2.AddNew
dyn2!numero = gnumero
dyn2!obs1 = Trim(ors(0))
dyn2!obs2 = Trim(ors(1))
dyn2.Update
End If
' End If
dyn2.Close
End If
b = b + 1
ors.MoveNext
Wend
dyn.Update
End If
dyn.Close
End With
ProgressBar1.Value = a
Next
End If
End Sub


JINFRJ 24/11/2006 08:02:28
#186039
o engraçado que quando digito nova informação em outro local tipo data e numero ele reconhece normalmente.
então como faço para colocar uma formula na celula h7 que apanhe o conteudo da celula b7.
MARCOSAV 24/11/2006 11:12:11
#186119
Não entendi essa última colocação...

Se já está reconhecido, vc pode fazer assim:

Para fazer cálculo com a B7 (claro que vc pode usar o que quiser, isto é só um exemplo):
Sua_Plan.Range("H7").Formula = "=B7 * 3"

Para ter o conteúdo de B7 em H7:
Sua_Plan.Range("H7") = Sua_Plan.Range("B7")

é isso ??? Como disse, não entendi a questão, então se não for, dá uma clareada, vlw ???

Abraço
T+
JINFRJ 25/11/2006 15:00:46
#186243
caro companheiro de forum.
como expliquei a cima não estou conseguindo migrar determinado conteudo de umas tabelas que tem data de nascimento, data e pontos o conteudo que e apresentado e nulo.
mais ao digitar data e valores na planilha e salvar os mesmo são apresentados normalmente e tambem quando crio uma formula na planilha endereçada a celula que o valor e nulo ao migrar o valor e migrado normalmente.
então o pretendo fazer criar uma formula automaticamente no processo enderecado as celulas nulas para migração.

então a pergunta e como crio a formula automaticamente no programa.

usei este procedimento mais não funcionou
ors(1).value = "=b7"
quando abri a lanilha o valor gravado e texto e não uma formula.

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