Inserir dados do mesmo formulario em tabelas diferentes

5 respostas
B

Olá. Estou com problema em um projeto q estou fazendo usando netbeans e access.

Tenho duas tabelas no access:

CLIENTE
id_cliente
txt_nome
txt_endereco

SERVICO_SOLICITADO
id_servico_solicitado
id_cliente
qtd_periodo
qtd_parcela

No proprio access fiz o relacionamento das tabelas atraves do campo id_cliente.

E na tela tenho um formulario para preencher:Nome, edereço, periodo e qtd de parcelas. Os dois primeiros devem ser cadastrados na tabela cliente, eos outros dois na tabela servico_solicitado. Fiz um codigo para cadastrar os dados da tabela clientes assim que clicar no botao cadastrar e funcionou sem problemas.

String sqlinsert = "insert into CLIENTES ( txt_nome,txt_endereco, " +
                ) values ('"+
                nomeCliente.getText()+"','"+endCliente.getText()+"')";



        conCliente.statement.executeUpdate(sqlinsert);

        JOptionPane.showMessageDialog(null,"Gravado com sucesso");

        conCliente.resultset = conCliente.statement.executeQuery("Select * from CLIENTES");
        conCliente.resultset.next();

Mas eu nao estou conseguindo no mesmo codigo cadastrar na tabela servico_solicitado. COmo eu tenho q fazer?

E outra duvida, a tabela cliente gera automaticamente um numero para o id_cliente, como eu poderia assim que clicar no botao esse id_cliente ir tambem para a tabela servico_solicitado?

5 Respostas

ellison

Se vc fizer o relacionamento certinho no acess…ele já insere os dados do cliente na tabela de serviços…
com relação aos dados de serviço vc vai ter q fazer outra query…

mas eu acho que o mais ideal é vc criar uma nova tabela que seria uma associação de cliente com serviço. sacou ?? vc vai ter uma tabela pra saber qual cliente comprou qual serviço…

é…no caso, a tabela que é intermediária entre cliente e serviço

B


Se vc fizer o relacionamento certinho no acess…ele já insere os dados do cliente na tabela de serviços…
com relação aos dados de serviço vc vai ter q fazer outra query…

Ja tinha feito os relacionamentos antes de postar a msg e nao funcionou. E nao entendi a parte de fazer outra query.


mas eu acho que o mais ideal é vc criar uma nova tabela que seria uma associação de cliente com serviço. sacou ?? vc vai ter uma tabela pra saber qual cliente comprou qual serviço…

Entao, essa tabela é a q eu descrevi, SERVICO_SOLICITADO, que faz a ligação entre CLIENTES e SERVICO.

M

Eu não sei se o acess dá suporte a isso mas exste uma maneira de retornar a key gerada usando: RETURN_GENERATED_KEYS

depois do executeUpdate() você cria uma variável do tipo ResultSet e atribui o valor do seu statement.getGeneratedKeys();

por exemplo:

ResultSet rs = stmt.getGeneratedKeys(); rs.next(); int IdCliente = rs.getInt(1);
Assim você tem o Id gerado na tabela.

B

Valeu markin, vou fazer o teste… mas antes eu preciso tirar a minha duvida de como cadastrar em tabelas diferentes…

M

bom vc pegando o Id que foi gerado basta vc fazer o outro insert

Criado 31 de maio de 2009
Ultima resposta 31 de mai. de 2009
Respostas 5
Participantes 3