Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fbo moreira

[Resolvido]  vb6 run-time error '3704'

Recommended Posts

fala pessoal, eu sou novo tanto no forum quanto no vb6, e estou com um pequeno probleminha:

 

esta dando o erro: Run-time error: '3704' quando tento colocar as informações que recebi do db na tabela, segue codigo abaixo

 

expADO = ""
	For nlinha = 1 To UBound(strCaminho)
		If (nlinha = 1) Then
			expADO = expADO & " CREATE TABLE #temp (mes int, id_cliente int, rsocial nvarchar(40), valornota money)" & vbCrLf
		End If
		expADO = expADO & " insert into #temp (mes, id_cliente, rsocial, valornota) " & vbCrLf
		expADO = expADO & " SELECT MONTH(DATA)AS MES, A.ID_CLIENTE, RSOCIAL, VALOR FROM " & strCaminho(nlinha) & "_PEDIDOS A INNER JOIN CLIENTES B ON A.ID_CLIENTE = B.ID_CLIENTE" & vbCrLf
		expADO = expADO & " where data between '01-01-" & ListaAno.Text & "' and '12-31-" & ListaAno.Text & "' " & vbCrLf
	Next
	expADO = expADO & " select mes, id_cliente, rsocial, sum(valornota) from #temp group by mes, rsocial, id_cliente  " & vbCrLf
	cn.ConnectionString = frmInterface.ConectionStringSEC
	cn.Open
	cmd.ActiveConnection = cn
	cmd.CommandType = adCmdText
	cmd.CommandText = expADO
	Set rsADO = cmd.Execute()
	
	nlinha = 1
	Do While nlinha < Tabela1.Rows
		Do While Not rsADO.EOF ' <<<<<<<<<<<<<<< este cara [rsADO.EOF] que esta aparecendo fechado, 
			Dim Coluna As Integer
			Coluna = rsADO!mes + 1
			Tabela1.TextMatrix(nlinha, Coluna) = Format(Tabela1.TextMatrix(nlinha, Coluna) + rsADO!valornota, "#,###,##0.00")
			rsADO.MoveNext
		Loop
		nlinha = nlinha + 1
	Loop
o erro ocorre no dsADO.EOF, fala que o objeto esta fechado, mas eu utilizei ele pouco acima e não deu pau nenhum, e esse pau só dá quando eu tento inserir os dados em uma tabela temporaria, será que eu não tenho permissão para isso ?

 

obrigado e aguardo anciosamente por ajuda, rssss http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só, acredito eu que o erro esteja ocorrendo porque na mesma expressão você está criando sua tabela, inserindo dados e depois fazendo dois select distintos (não sei qual sua utilidade para isso mas acredito que haja uma).

 

Então acredito eu que, no fim das contas ele não abriu nenhuma tabela, somente (se fez isso) criou a tabela e inseriu valores.

 

Porque não tenta fazer parte por parte.

 

Antes de tudo, abra sua conexão com o banco

 

cn.ConnectionString = frmInterface.ConectionStringSEC

cn.Open

cmd.ActiveConnection = cn

cmd.CommandType = adCmdText

 

Depois vá executando suas querys

 

expADO = expADO & " CREATE TABLE #temp (mes int, id_cliente int, rsocial nvarchar(40), valornota money)"

cmd.CommandText = expADO

Set rsADO = cmd.Execute()

 

,

 

 

expADO = expADO & " insert into #temp (mes, id_cliente, rsocial, valornota) "

cmd.CommandText = expADO

Set rsADO = cmd.Execute()

 

E assim por diante...

Compartilhar este post


Link para o post
Compartilhar em outros sites

era isso mesmo, o problema estava nos selects,

 

é que quando eu debugava o erro aparecia no insert, aí imaginei que fosse outra coisa, até chequei as permissões no banco

 

 

fiz o que você falou, coloquei os selects separados e deu certo, show de bola !!!

 

valeu cara

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.