RELATORIO DINAMICO

ANABON0106 13/06/2011 15:13:43
#376631
Olá pessoa boa tarde!!!!

Estou tentando fazer um relatorio dinamico no vb6 mais infelismente ta dando um erro que não consigo descobri porque.... estou usando os seguintes codigos:

Citação:

Private Sub consulta(sql1 As String)
Set RS = New Recordset
RS.CursorLocation = adUseClient
RS.Open sql1, con, adOpenKeyset, adLockOptimistic

Set grdvendas.DataSource = rsdyn

grdvendas.Refresh

lblmsg.Caption = [Ô]([Ô] & rsdyn.RecordCount & [Ô])[Ô] & [Ô] Item (s) [Ô] & [Ô] encontrados![Ô]

End Sub



O erro que dá é o : [Ô] Run-Time [ô]91[ô]: Object variable or with block variable set.[Ô]

e a linha que aponta o erro é:
Citação:

Set grdvendas.DataSource = rsdyn



Se alguem puder me ajudar agradeço muito....

Forte Abraço
KERPLUNK 13/06/2011 16:07:25
#376636
rsdyn não é um objeto, ou é null
Verifique se está aberto...
MSMJUDAS 13/06/2011 16:21:45
#376638
Troque isso

Set grdvendas.DataSource = rsdyn
rsdyn.RecordCount

Por isso:

Set grdvendas.DataSource = Rs
Rs.RecordCount
EDILSONLEAL 13/06/2011 16:56:53
#376644
Private Sub consulta(sql1 As String)
Set RS = New Recordset
RS.CursorLocation = adUseClient
RS.Open sql1, con, adOpenKeyset, adLockOptimistic

[txt-color=#007100][ô]Libera a conexão com so servidor de dados e grava o record set na memória[/txt-color]
[txt-color=#e80000]Set RS.Connection = nothing[/txt-color]

[txt-color=#e80000] Set grdvendas.DataSource = RS[/txt-color]

grdvendas.Refresh

lblmsg.Caption = [Ô]([Ô] & rsdyn.RecordCount & [Ô])[Ô] & [Ô] Item (s) [Ô] & [Ô] encontrados![Ô]


acho que isso resolve seu problema

End Sub
ANABON0106 13/06/2011 16:58:03
#376645
Muito obrigada pelas dicas, fiz como o MSMJUDAS indicou... porém continua dando o mesmo erro .... vou explicar oque quero fazer com isso qm sabe alguem sabe uma forma mais simples de fazer....

Quero imprimir uma venda .... então criei um form venda onde lanço tudo em um MSFlexGrid, depois salvo no Banco de Dados (acess 2003) e ai qria ter a opção de imprimir caso o usuario quisesse.... tenho no meu form venda as seguinte função:

Citação:

Private Sub consulta(sql1 As String)

Set RS = New Recordset
RS.CursorLocation = adUseClient
RS.Open sql1, con, adOpenKeyset, adLockOptimistic
Set grdvendas.DataSource = RS

[ô]RS.RecordCount


[ô]lblmsg.Caption = [Ô]([Ô] & rsdyn.RecordCount & [Ô])[Ô] & [Ô] Item (s) [Ô] & [Ô] encontrados![Ô]
End Sub



q continua dando erro :
Citação:

Set grdvendas.DataSource = RS

, erro: [Ô] Run-Time [ô]91[ô]: Object variable or with block variable set.[Ô]

na função active do form eu tenho :
Citação:

Private Sub Form_Activate()
[ô]consulta ([Ô]select * from orders where shipcountry[Ô])
consulta ([Ô]select * from venda[Ô])
End Sub



e no botão no menu imprimir tenho:
Citação:

Private Sub mnuimprimir_Click()
With DataReport1
Set .DataSource = Nothing
.DataMember = [Ô][Ô]
Set .DataSource = RS.DataSource
With .Sections([Ô]Section1[Ô]).Controls
For I = 1 To .Count
If TypeOf .Item(I) Is RptTextBox Then
[ô]O datamember deverá sempre ser enquanto estiver criando relatorios dinamicos
.Item(I).DataMember = [Ô][Ô]
.Item(I).DataField = RS.Fields(I - 1).Name
End If
Next I
End With
.Show
End With

End Sub



tentei tirar a função consulta, mas se tiro essa função qndo vai abrir o relatorio da o erro: [Ô]a operação não pode ser realizada qndo o objeto estiver aberto[Ô]

Estou fazendo certo? é isso mesmo q preciso? e ql o erro do meu codigo?

desde já agradeço!!!!
ANABON0106 13/06/2011 17:13:00
#376647
Obrigada, EDILSONLEAL troquei pelo modo q m indicou so q se eu colocar a linha
Citação:

Set RS.Connection = nothing

, da o erro : Compli error: Metho or data member not found[Ô]

Ai tirei o . Connection e deixei assim
Citação:

RS = nothing



Fazendo isso da o mesmo erro de antes...

[Ô] Run-Time [ô]91[ô]: Object variable or with block variable set.[Ô]



DANLEONHART 13/06/2011 22:10:35
#376666
Olha, acho que o [Ô]rsdyn[Ô] deve ser um RecordSet... logo deve-se setá-lo

rsdyn = New RecordSet


Então, você tem dois RecordSet[ô]s ???
ARCADYUM 14/06/2011 09:18:18
#376684
Mostra como você conecta o banco de dados.
é uma função/procedimento, então mostra como ela é conectada.
Se estiver no formulário, mostra em que você evento você está conectando.
EDILSONLEAL 14/06/2011 09:42:06
#376687
Private Sub consulta(sql1 As String)
[txt-color=#e80000][ô] cadê a declaração do recordset?[/txt-color]
Set RS = New Recordset
RS.CursorLocation = adUseClient
[txt-color=#e80000][ô]Cadê o comando sql?[/txt-color]
[txt-color=#e80000][ô]cadê a conexão [ô]con[ô]?[/txt-color]
RS.Open sql1, con, adOpenKeyset, adLockOptimistic

[ô]Libera a conexão com so servidor de dados e grava o record set na memória
Set RS.Connection = nothing

Set grdvendas.DataSource = RS

grdvendas.Refresh

lblmsg.Caption = [Ô]([Ô] & rsdyn.RecordCount & [Ô])[Ô] & [Ô] Item (s) [Ô] & [Ô] encontrados![Ô]


End Sub
[txt-color=#e80000]Qual grid vc está usando?
Microsoft Hierarchical Flex Grid ou a Microsoft Flex Grid?[/txt-color]
Tópico encerrado , respostas não são mais permitidas