Ola. Seguinte pessoal, fiz um code q funciona pra pegar no ultimo registro de uma table o valor de um campo seu, somar + 1 a este, e jogar num edit.
Ta, funciona? SIM, logico q funciona,,, porem, as veses, da pau... ele joga no registro Last ta tabela, so q nao retorna valor algum do campo, sendo q se vc abrir a DB vc ve la q o registro em last em seu campo pedido ta com valor sim....
olha ae:
...
If AdoQrySearchCliByCod.FieldByName('Codigo').AsString = EdtCodCli.Text Then
Begin
AdoQrySearchCliByCod.Close;
CBoxTipoEmissao.Enabled := False;
BtnConfirmaCodCliCompra.Caption := 'OK!';
EdtCodCli.Enabled := False;
CBTypeOfPayment.Enabled := False;
MECodCheque.Enabled := False;
MECodCartao.Enabled := False;
If EdtCodOs.Text = '' Then
Begin
DataModule1.ATComprasEfetuadas.Close;
DataModule1.ATComprasEfetuadas.Open;
DataModule1.ATComprasEfetuadas.Last;
If DataModule1.ATComprasEfetuadas.FieldByName('NumNota').AsString = '' Then
Begin
VNumNotaSTR := '0';
VNumNotaDB := StrToCurr(VNumNotaSTR);
VNumNotaDB := VNumNotaDB + 1;
VNumNotaSTR := CurrToStr(VNumNotaDB);
EdtCodOs.Text := VNumNotaSTR;
DataModule1.ATComprasEfetuadas.Close;
Exit;
end
Else If DataModule1.ATComprasEfetuadas.FieldByName('NumNota').AsString <> '' Then
Begin
//QdoQrySearchNumNota.Close;
//QdoQrySearchNumNota.Open;
//QdoQrySearchNumNota.Last;
//QdoQrySearchNumNota.ExecSQL;
//VNumNotaSTR := QdoQrySearchNumNota.FieldByName('NumNota').AsString; {OBS:. Na DB este campo tem que ser iniciado com o valor "0".}
VNumNotaSTR := DataModule1.ATComprasEfetuadas.FieldByName('NumNota').AsString;
VNumNotaDB := StrToCurr(VNumNotaSTR);
VNumNotaDB := VNumNotaDB + 1;
VNumNotaSTR := CurrToStr(VNumNotaDB);
EdtCodOs.Text := VNumNotaSTR;
//QdoQrySearchNumNota.Close;
DataModule1.ATComprasEfetuadas.Close;
Exit;
end;
end;
end
...
ta,,, entao, ele fecha tabela, dps abre, dps da um LASt pra pegar o ultimo reg,,, ai ve se existe de fato um ultimo reg, se nao tiver nenhum reg, ele cria um, se tiver, ele pega o valor do campo e soma + 1....
so q as veses o access nao retorna o valor msm tendo,,, sera q eh pau dele, do delphi ou eu fiz algo errado ae em cima?
ty, t+