Fórum Problemas com Listas de Banco de Dados Access #528421

11/08/2015

0

Ola gente, comecei a usar o delphi a pouco tempo, estou trabalhando com banco de dados access e estou preso em um problema, estou tentando criar uma lista em um listbox com os dados presentes no access e estou tentando adicionar dados no proprio programa, porem sempre que eu tento adicionar novos dados acabo por editar o ultimo dado inserido e nao consigo encontrar meu erro, será que voces poderiam me ajudar?
Segue abaixo os meus procedimentos de salvar o novo dado e de listar os dados ja existentes.

procedure TfrmCadastro.btnSalvarFuncClick(Sender: TObject);
begin //procedure
if Length(IdFunc)<>0 then
begin //If lenght
with DM.tblFuncionarios do
begin //With
close;
open;
first;
if DM.tblFuncionarios.Locate('Id_funcionario',IdFunc[lstbxFuncionarios.ItemIndex],[])= true then
begin //if do with
Edit;
FieldByName('Nome').AsString:= lbledtFuncionario.Text;
FieldByName('Sexo').AsInteger:= rdgrpSexo.ItemIndex;
FieldByName('Nascimento').AsString:= mskedtNascimento.Text;
FieldByName('CPF').AsString:= mskedtCPF.Text;
FieldByName('Email').AsString:= lbledtEmail.Text;
post;
end //if do with
else
begin //else do with
Append;
Insert;
FieldByName('Nome').AsString:= lbledtFuncionario.Text;
FieldByName('Sexo').AsInteger:= rdgrpSexo.ItemIndex;
FieldByName('Nascimento').AsString:= mskedtNascimento.Text;
FieldByName('CPF').AsString:= mskedtCPF.Text;
FieldByName('Email').AsString:= lbledtEmail.Text;
post;
end; //else do with
end; //with
end //if length
else
begin
with DM.tblFuncionarios do
begin
Close;
Open;
First;
insert;
FieldByName('Nome').AsString := lbledtFuncionario.Text;
FieldByName('Sexo').AsInteger := rdgrpSexo.ItemIndex;
FieldByName('CPF').AsString := mskedtCPF.Text;
FieldByName('Nascimento').AsString:= mskedtNascimento.Text;
FieldByName('Email').Asstring:= lbledtEmail.Text;
post;
end;
end;
ListarFuncionarios;
lbledtFuncionario.Enabled := false;
rdgrpSexo.Enabled := false;
mskedtCPF.Enabled := false;
lbledtEmail.Enabled:= false;
mskedtNascimento.Enabled:= false;
lstbxFuncionarios.ItemIndex:= -1;
end;

procedure TfrmCadastro.ListarFuncionarios;
var
i:integer;
temp: string;
begin
lstbxFuncionarios.items.clear;
i:=0;
Setlength(IdFunc,i);
SetLength(NomeFunc,i);
with DM.tblFuncionarios do
begin
close;
open;
first;
while not DM.tblFuncionarios.eof do
begin
temp:= FieldByName('Nome').AsString;
lstbxFuncionarios.Items.Add(temp);
i:=i+1;
Setlength(IdFunc,i);
SetLength(NomeFunc,i);
IdFunc[i-1]:= FieldByName('Id_Funcionario').AsInteger;
NomeFunc[i-1]:= FieldByName('Nome').AsString;
Next;
end;
lstbxFuncionarios.ItemIndex:= -1;
end;
end;

Obrigado desde ja
Luiz Neto

Luiz Neto

Responder

Posts

15/08/2015

Jhonatan Pereira

Luiz, indentação antes de mais nada! Isso faz a base de um bom profissional. Alinha seu código direitinho e manda de novo, usando a opção de inserção de código presente no site.
[img]http://arquivo.devmedia.com.br/forum/imagem/348219-20150815-200351.png[/img]
Responder

Gostei + 0

01/09/2015

Luiz Neto

perdao pelo deslize, o problema ja foi resolvido, muito obrigado!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar