Ir para conteúdo

POWERED BY:

Arquivado

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

fagnerx21

[Resolvido] Alguns erros que estão me dando dor de cabeça

Recommended Posts

Olá a todos,se alguém puder me ajudar a terminar isso vou ficar muito grato,é o seguinte,estou tentando terminar um sistema simples que cadastra e edita cliente e produto e faz a venda,é tão simples que não tem nem controle de estoque,o sistema tem uma tela separada apenas para cadastro de cliente e o mesmo se repete com cadastro de produto,tem uma tela de gerenciamento de clientes e o mesmo se repete com produtos e tem uma tela para efetuar venda,na tela de gerenciamento de clientes e produtos quando se abre caso houver algum registro vai para o primeiro registro da tabela e mostra os dados no form, caso contrário emite uma mensagem "Sem registro !",nessas telas tem todas as funções básicas exceto o incluir que está em tela separada,na tela de venda tem um combobox que vai ser populado com os nomes de todos os clientes que tenho e tem um combobox que vai ser populado com todos os nomes de todos os produtos que tenho,quando selecionar um produto vai mostrar numa label o preço referente a este produto,também tem uma maskededit onde o usuário vai digitar a quantidade referente ao produto que ele vai adicionar, tem o botão adicionar que vai adicionar essas informações num MSFlexGrid que no caso seria a minha lista de itens a ser vendido,nesse grid mostra o nome do cliente,nome do produto,valor unitário,quantidade e sub-total(vlr. unit. * qtd.),em baixo tem um label mostrando o valor total e tem 2 botões que são limpar lista que vai zerar a lista e o valro total e finalizar venda que vai imprimir uma nota fiscal igual aquelas de super mercado onde contém dados simples, nada tipo aqueles fiscais profissionais,é só um papel em formato igual aqueles de mercado que contém o nome do cliente,nome do produto,valor unitario,quantidade,sub-total e no cabeçalho ou em outro lugar apropriado o valor total e depois disso vai limpar o form e dar foco no primeiro campo.

Está descrito como todo meu sistema funciona, viu como é simples !

Agora os problemas que tenho:

- Não estou conseguindo mostrar os dados no form onde gerencia os dados dos clientes e produtos,não consigo fazer a movimentação ( primeiro,anterior,próximo e último),não consigo buscar um valor e mostrar os dados no form.

- Não consigo adicionar os dados no grid.

- Não sei como imprimir essa nota fiscal pois só trabalhei com padrão de folha A4 para impressão de relatórios comuns utilizando a ferramenta Crystal Reports

 

Até agora é isso que não estou conseguindo fazer,já tive alguns outros erros mas já resolvi com o pessoal do fórum.

Eu preciso muito terminar esse sistema para poder pagar minha faculdade visto que não estou trabalhando e tendo que me virar com freelances.

Se alguém puder me ajudar a finalizar esse sistema vou fazer tudo que puder para retribuir e ficar grato eternamente.

 

Download do meu projeto:

http://rapidshare.com/files/154057939/VB.rar.html

PS:Logo que conseguir hospedarei as imagens de erro,enquanto isso se puderem,baixem o projeto e executem para verem os erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá fagnerx21, beleza cara?

 

Bom, seus problemas não são tããão difíceis assim de serem solucionados, com exceção da impressão que não saberei te ajudar mas você pode achar algo aqui.

 

Vamos pelo início.

 

Isso aqui está estranho, repare:

 

Private Sub Form_Load()

'Abre a conexão

'você abre sua conexão

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\CONTROLE.mdb;"

'Abre o recordset

rs.CursorLocation = adUseClient

'e abre seu recordset

rs.Open "SELECT * FROM Clientes", cn, adOpenKeyset, adLockOptimistic, adCmdText

'depois compara se é vazio, se não for chama a função para exibir na tela

If rs.BOF Or rs.EOF Then

MsgBox "Não encontrou nenhum registro."

Else

fuCarregaRegCli

rs.MoveFirst

End If

End Sub

 

Public Sub fuCarregaRegCli()

Dim sql As String

Dim codigo As Long

 

'codigo = Val(txtCodigo)

'Abre a conexão

'ai aqui na sua função você abre de novo uma conexão sem ter fechado a anterior, ou seja, você podia ter usado a mesma

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\CONTROLE.mdb;"

cn.CursorLocation = adUseClient

'Define a instrução sql

sql = "SELECT * FROM CLIENTES"

'Abre o recordset

'depois faz um novo recordset com a mesma consulta anterior

rs.Open sql, cn, adOpenForwardOnly, adLockReadOnly

'use dessa forma rs.open sql, adOpenDynamic, adLockOptimistic - para que absoluteposition não seja -1

txtCodigo = rs(0)

txtNome = rs(1)

If rs(2).Value > 0 Then

txtCNPJ = rs(2)

Else

txtCNPJ = ""

End If

If rs(3).Value > 0 Then

mskNascimento = rs(3)

Else

mskNascimento = ""

End If

If rs(4).Value > 0 Then

mskCep = rs(4)

Else

mskCep = ""

End If

If rs(9).Value > 0 Then

txtBairro = rs(9)

Else

txtBairro = rs(9)

End If

If rs(5).Value > 0 Then

txtEndereco = rs(5)

Else

txtEndereco = ""

End If

If rs(6).Value > 0 Then

txtTelefone = rs(6)

Else

txtTelefone = ""

End If

 

If rs(7).Value > 0 Then

txtCelular = rs(7)

Else

txtCelular = ""

End If

If rs(9).Value > 0 Then

txtObs = rs(8)

Else

txtObs = ""

End If

'aqui absoluteposition e recordcontu sempre serão igual a -1 devido a forma como abriu seu recordset acima

txtVisor = "Registros: " & rs.AbsolutePosition & "/" & rs.RecordCount

rs.Close

End Sub

 

E assim, seu código para carregar, fora essas obs, está correto, o que faz com que não apareça na tela é, a função que está preenchendo os campos está em um modulo.

E nesse módulo não existe o objeto txtNome. Você precisa especificar de qual form o objeto pertence. (frmGerCli.txtnome = rs(1).

 

Vai tentando corrigir essa parte. Me avise se der certo que te ajudo com o resto.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá fagnerx21, beleza cara?

 

Bom, seus problemas não são tããão difíceis assim de serem solucionados, com exceção da impressão que não saberei te ajudar mas você pode achar algo aqui.

 

Vamos pelo início.

 

Isso aqui está estranho, repare:

 

Private Sub Form_Load()

'Abre a conexão

'você abre sua conexão

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\CONTROLE.mdb;"

'Abre o recordset

rs.CursorLocation = adUseClient

'e abre seu recordset

rs.Open "SELECT * FROM Clientes", cn, adOpenKeyset, adLockOptimistic, adCmdText

'depois compara se é vazio, se não for chama a função para exibir na tela

If rs.BOF Or rs.EOF Then

MsgBox "Não encontrou nenhum registro."

Else

fuCarregaRegCli

rs.MoveFirst

End If

End Sub

 

Public Sub fuCarregaRegCli()

Dim sql As String

Dim codigo As Long

 

'codigo = Val(txtCodigo)

'Abre a conexão

'ai aqui na sua função você abre de novo uma conexão sem ter fechado a anterior, ou seja, você podia ter usado a mesma

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\CONTROLE.mdb;"

cn.CursorLocation = adUseClient

'Define a instrução sql

sql = "SELECT * FROM CLIENTES"

'Abre o recordset

'depois faz um novo recordset com a mesma consulta anterior

rs.Open sql, cn, adOpenForwardOnly, adLockReadOnly

'use dessa forma rs.open sql, adOpenDynamic, adLockOptimistic - para que absoluteposition não seja -1

txtCodigo = rs(0)

txtNome = rs(1)

If rs(2).Value > 0 Then

txtCNPJ = rs(2)

Else

txtCNPJ = ""

End If

If rs(3).Value > 0 Then

mskNascimento = rs(3)

Else

mskNascimento = ""

End If

If rs(4).Value > 0 Then

mskCep = rs(4)

Else

mskCep = ""

End If

If rs(9).Value > 0 Then

txtBairro = rs(9)

Else

txtBairro = rs(9)

End If

If rs(5).Value > 0 Then

txtEndereco = rs(5)

Else

txtEndereco = ""

End If

If rs(6).Value > 0 Then

txtTelefone = rs(6)

Else

txtTelefone = ""

End If

 

If rs(7).Value > 0 Then

txtCelular = rs(7)

Else

txtCelular = ""

End If

If rs(9).Value > 0 Then

txtObs = rs(8)

Else

txtObs = ""

End If

'aqui absoluteposition e recordcontu sempre serão igual a -1 devido a forma como abriu seu recordset acima

txtVisor = "Registros: " & rs.AbsolutePosition & "/" & rs.RecordCount

rs.Close

End Sub

 

E assim, seu código para carregar, fora essas obs, está correto, o que faz com que não apareça na tela é, a função que está preenchendo os campos está em um modulo.

E nesse módulo não existe o objeto txtNome. Você precisa especificar de qual form o objeto pertence. (frmGerCli.txtnome = rs(1).

 

Vai tentando corrigir essa parte. Me avise se der certo que te ajudo com o resto.

 

Abraço.

Ok,vlw,então tenho apenas que deixar uma conexão e um rs aberto e fazer como você explicou,nem percebi q tinha aberto 2 vezes a conexao e o recordset oO

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! me passa um email seu!

Se for para auxiliar poste aqui no fórum onde todos possam ver. Caso queira fazer algum tipo de negócio, entre em contato via MP com o membro. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

fagnerx21, seu tópico foi resolvido??

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! me passa um email seu!

Se for para auxiliar poste aqui no fórum onde todos possam ver. Caso queira fazer algum tipo de negócio, entre em contato via MP com o membro. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

fagnerx21, seu tópico foi resolvido??

 

Abraços...

 

ok, quintelab! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala fagnerx21, bom com o Claudio Neto (Parabéns pelo título de moderação Cláudio!) te ajudando e também o mibnetweb, nem preciso interferir...

rsrsr

quando estiver com suas dúvidas resolvidas e o sistema funcionar direito,

então te ajudo com o Crystal Reports! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Na verdade, é um desafio apostar no CR, é uma ótima ferramenta, mas quase ningúem sabe desenvolver nela,

passei por vários problemas quando comecei, só consegui com a ajuda do Paulo Mendes (antigo Moderador Trainee) mesmo!

 

Do que diz respeito ao Crystal, pode contar comigo! http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

 

Abração Pessoal

até +

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.