CADASTRAR 2 TABELAS SEGUIDAS

OMAR2011 05/10/2015 23:04:46
#452185
Sou mais adepto a criar um outro Campo para Codigodevenda.
Basta pensar sobre seu projeto.Vai ser um gravação de um
item por vez.é o que parece.Você define uma outra forma
para registrar codigodevenda.
Na sua tabela como vai ficar.


Isto para Itens de vendas
cod_venda cod_produto
1 345
2 23
3 312
4 398
Quando fizer uma consulta pelo codigo de venda,só vai
aparecer apenas um registro.

Tem que ser mais ou menos assim:
Codven cod_venda cod_produto
1 34RT 345
2 34RT 23
3 34RT 312
4 34RT 398
Deste jeito.
Select Cod_venda,cod_produto From ItensVendas Where Cod_venda = [ô]34RT[ô]
Vai aparecer todos os produto referente a venda de 34RT.
Citada acima vai apararecer apenas um registro.

Na sua tabela VENDAS retira o campo nome_completo,pois você já tem
cod_cliente.

Prepare para quebrar a cabeça,pois não é tão simples assim.
Pergunte ao Famigerado.
PLUGSOFTSM 06/10/2015 13:11:07
#452214
Amigo
Vou fazer um exemplo mais detalhado de como vc pode fazer
Vou fazer somente o insert... se vc tiver que alterar vendas, daí deverá fazer os ajustes para alteração tb..... Poucas são as vezes em que vi um sistema que necessite editar uma venda

Pode Fazer Assim

Dim MaxCod as long
Using ConDB as OleDebConnection = new OledbConnection(Conexao) [ô]Conexão é a string de conexão com o banco de dados
ConDB.Open
[ô]Aqui gravo a venda
Using RstCmd as OleDBCommand = New OleDBCommand([Ô]Insert into Vendas(Data_venda, Cod_Cliente, Nome_complato, Valor_Total, CodPagto, CodVendedor) Values(#10/28/2015[Ô],10,[ô]Jamal Carneiro[ô],250.00,1,25)[Ô], ConDB)
RstCmd.ExecuteNonQuery
end Using
[ô]Recupero o último código informado na venda
Using RstCmd as OleDBCommand = New OleDBCommand([Ô]Select max(cod_Venda) from Vendas[Ô], ConDB)
MaxCod = RstCmd.ExecuteScalar
End Using
[ô]Percorro a lista de produtos da veda
for I as integer = 1 to NReg [ô]Número de Itens Vendidos
[ô]Faço a gravação de cada produto
Using RstCmd as OleDBCommand = New OleDBCommand([Ô]Inser Into ItensVenda(Cod_Produto, Cod_Venda, pReco_Vend, Total_Itens, Valor_Total) Values([ô][Ô] & [código Produto] & [ô], [Ô] & MaxCod & [Ô], [Ô] & [Preco Venda] & [Ô],[Ô] & [Total Itens] & [Ô],[Ô] & [Valor Total] & [Ô])[Ô], ConDB)
RstCmd.ExecuteNonQuery
End Using
Next I
End Using


[ô]Tome o seguinte cuidado
[ô][código Produto] Substitua pelo código do produto a ser gravdo. Se for campo do tipo string, deverá estar ente [ô][ô]
[ô]MaxCod - Código recuperado da venda anteriormente gravada
[Preco Venda] , [Total Itens] , [Valor Total] [ô]Se forem numéricos, deverão ter possíveis [Ô],[Ô] substituídos por [Ô].[Ô], Ponto de milhar não existe. Se contiver, substituir por [Ô][Ô]
[ô]Data deverão aparecer ente ## e formatadas para o padrão [Ô]MM/dd/yyyy[Ô]

Fazem muitos anos que não uso mais o access. Não sei se ele suporá transaction. se suportar, vc deve usar para garantir a integridade dos dados e não ter vendas gravadas pela metade

Espero ter ajudado
COQUITO 06/10/2015 15:54:25
#452226
P
Citação:

:
Amigo
Vou fazer um exemplo mais detalhado de como vc pode fazer
Vou fazer somente o insert... se vc tiver que alterar vendas, daí deverá fazer os ajustes para alteração tb..... Poucas são as vezes em que vi um sistema que necessite editar uma venda

Pode Fazer Assim

Dim MaxCod as long
Using ConDB as OleDebConnection = new OledbConnection(Conexao) [ô]Conexão é a string de conexão com o banco de dados
ConDB.Open
[ô]Aqui gravo a venda
Using RstCmd as OleDBCommand = New OleDBCommand([Ô]Insert into Vendas(Data_venda, Cod_Cliente, Nome_complato, Valor_Total, CodPagto, CodVendedor) Values(#10/28/2015[Ô],10,[ô]Jamal Carneiro[ô],250.00,1,25)[Ô], ConDB)
RstCmd.ExecuteNonQuery
end Using
[ô]Recupero o último código informado na venda
Using RstCmd as OleDBCommand = New OleDBCommand([Ô]Select max(cod_Venda) from Vendas[Ô], ConDB)
MaxCod = RstCmd.ExecuteScalar
End Using
[ô]Percorro a lista de produtos da veda
for I as integer = 1 to NReg [ô]Número de Itens Vendidos
[ô]Faço a gravação de cada produto
Using RstCmd as OleDBCommand = New OleDBCommand([Ô]Inser Into ItensVenda(Cod_Produto, Cod_Venda, pReco_Vend, Total_Itens, Valor_Total) Values([ô][Ô] & [código Produto] & [ô], [Ô] & MaxCod & [Ô], [Ô] & [Preco Venda] & [Ô],[Ô] & [Total Itens] & [Ô],[Ô] & [Valor Total] & [Ô])[Ô], ConDB)
RstCmd.ExecuteNonQuery
End Using
Next I
End Using


[ô]Tome o seguinte cuidado
[ô][código Produto] Substitua pelo código do produto a ser gravdo. Se for campo do tipo string, deverá estar ente [ô][ô]
[ô]MaxCod - Código recuperado da venda anteriormente gravada
[Preco Venda] , [Total Itens] , [Valor Total] [ô]Se forem numéricos, deverão ter possíveis [Ô],[Ô] substituídos por [Ô].[Ô], Ponto de milhar não existe. Se contiver, substituir por [Ô][Ô]
[ô]Data deverão aparecer ente ## e formatadas para o padrão [Ô]MM/dd/yyyy[Ô]

Fazem muitos anos que não uso mais o access. Não sei se ele suporá transaction. se suportar, vc deve usar para garantir a integridade dos dados e não ter vendas gravadas pela metade

Espero ter ajudado




Caro amigo, isso que eu procurava mesmo entender...vc leio os meus pensamentos. valeu amigo.

obrigado a todos
Página 2 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas