UPDATE GRAVA EM BRANCO

MARCELOFAZAN 19/06/2010 21:31:57
#345284
Pessoal , estou importando um txt o campo pagamento importa , e grava em seu devido where
porem , tem algo errado, que o campo pagam nao grava

o txt é assim

[Ô]00045[Ô],[Ô]14/06/2010[Ô],[Ô]S[Ô]
o codigo e a data da certo , mais o S grava em branco ou as vezes grava o numero 1

Acho que está incorreto esses trechos
linha3 = Mid(linha2, s_virgula + 1)
t_virgula = InStr(linha3, [Ô],[Ô])

e strPagam = LTrim(Mid(linha3, 2, s_virgula - 3))

segue o trecho inteiro




Open strFileName For Input As #1

Dim intCod, strPagamento, strPagam, linha, linha2, linha3 As String
Dim p_virgula, u_aspas, s_virgula As Integer

Do Until EOF(1)
linha = strFileName

Line Input #1, linha
p_virgula = InStr(linha, [Ô],[Ô])
linha2 = Mid(linha, p_virgula + 1)
s_virgula = InStr(linha2, [Ô],[Ô])
linha3 = Mid(linha2, s_virgula + 1)
t_virgula = InStr(linha3, [Ô],[Ô])


intCod = LTrim(Mid(linha, 2, p_virgula - 3))
strPagamento = LTrim(Mid(linha2, 2, s_virgula - 3))
strPagam = LTrim(Mid(linha3, 2, s_virgula - 3))


sql = [Ô]UPDATE aluno SET[Ô]
sql = sql & [Ô] pagamento=[ô][Ô] & strPagamento & [Ô][ô],[Ô]
sql = sql & [Ô] pagam=[ô][Ô] & strPagam & [Ô][ô][Ô]
sql = sql & [Ô] Where cod_ = [ô][Ô] & intCod & [Ô][ô][Ô]
cn.Execute sql

Obrigado
Abs
Marcelo Fazan
LIZANDER 19/06/2010 22:56:38
#345286
Resposta escolhida

Vamos lá Marcelo

1º - Depois do [Ô]S[Ô] tem mais alguma vírgula? Senão, não entendi o porque de: t_virgula = InStr(linha3, [Ô],[Ô])
Se sim, porque vc faz: strPagam = LTrim(Mid(linha3, 2, s_virgula - 3)) e não strPagam = LTrim(Mid(linha3, 2, t_virgula - 3))
Porque vc usa o s_virgula 2 vezes ao invés do t_virgula no ultimo?
EDERMIR 19/06/2010 22:58:01
#345287
Faremos uma pequena alteração:

Open strFileName For Input As #1

Dim intCod, strPagamento, strPagam, linha, linha2, linha3 As String
Dim p_virgula, u_aspas, s_virgula As Integer

    Do Until EOF(1)
linha = strFileName

Line Input #1, linha
Wlinha = replace(linha,chr(34),[Ô][Ô])
Wdiv = split(Wlinha,[Ô],[Ô])

intCodL = Wdiv(0)
strPagamento = Wdiv(1)
strPagam = Wdiv(2)

sql = [Ô]UPDATE aluno SET[Ô]
sql = sql & [Ô] pagamento=[ô][Ô] & strPagamento & [Ô][ô],[Ô]
sql = sql & [Ô] pagam=[ô][Ô] & strPagam & [Ô][ô][Ô]
sql = sql & [Ô] Where cod_ = [ô][Ô] & intCod & [Ô][ô][Ô]
cn.Execute sql


Qual o banco de dados que você está usando?

O campo a ser preenchido é LÓGICO ou CARACTER?
MARCELO.TREZE 19/06/2010 23:00:52
#345288
colega tenta isso

Open strFileName For Input As #1

Dim linha As String
Dim Result() As String, u_aspas As String

Do Until EOF(1)
linha = strFileName
Line Input #1, linha
u_aspas = Replace(Linha, [Ô][Ô][Ô],[Ô][Ô]) [txt-color=#007100][ô]retira as aspas[/txt-color]
Result = Split(u_aspas,[Ô],[Ô])[txt-color=#007100] [ô]Cria um vetor dos valores[/txt-color]

sql = [Ô]UPDATE aluno SET[Ô]
sql = sql & [Ô] pagamento=[ô][Ô] & Result(0) & [Ô][ô],[Ô]
sql = sql & [Ô] pagam=[ô][Ô] & Result(1) & [Ô][ô][Ô]
sql = sql & [Ô] Where cod_ = [ô][Ô] & Result(2) & [Ô][ô][Ô]
cn.Execute sql



acima a forma bem simplificada.

PS: existem um outro topico que vc não encerrou

EDERMIR 20/06/2010 08:29:50
#345292
MARCELOFAZAN

Tente as opções descritas anteriormente e retorne com o resultado.

Encerre seus tópicos resolvidos pois existe um limite para tópicos abertos.
MARCELOFAZAN 20/06/2010 18:15:19
#345315
Olá amigos
Consegui precisava ter encaixado t_virgula


Dim intCod, strPagamento, strPagam, linha, linha2, linha3 As String
Dim p_virgula, u_aspas, s_virgula, t_virgula As Integer


Do Until EOF(1)
linha = strFileName

Line Input #1, linha
p_virgula = InStr(linha, [Ô],[Ô])
linha2 = Mid(linha, p_virgula + 1)
s_virgula = InStr(linha2, [Ô],[Ô])
linha3 = Mid(linha2, s_virgula + 1)
t_virgula = InStr(linha3, [Ô],[Ô])


intCod = LTrim(Mid(linha, 2, p_virgula - 3))
strPagamento = LTrim(Mid(linha2, 2, s_virgula - 3))
strPagam = LTrim(Mid(linha3, 2, t_virgula - 3))



sql = [Ô]UPDATE buscar SET[Ô]
sql = sql & [Ô] pagamento=[ô][Ô] & strPagamento & [Ô][ô],[Ô]
sql = sql & [Ô] pagam=[ô][Ô] & strPagam & [Ô][ô][Ô]
sql = sql & [Ô] Where cod_ = [ô][Ô] & intCod & [Ô][ô][Ô]
cn.Execute sql

Loop
Close #1
cn.Close

Obrigado
Abs
Marcelo Fazan
Tópico encerrado , respostas não são mais permitidas