begin I := 0; Table1.First; Repeat ComboBoxRedigerKunde.Items.Add(Table1.fieldbyname('Kunde').Value); Inc(I); Table1.FindNext; Until (I = Table1.RecordCount); end;
Hvis ellers feltet hedder kunde. Der er mange andre muligheder, men med et table er dette det der giver den største frihed.
2. Du skal enten Append eller insert. I begge tilfælde fylder du så felterne ud efter kaldet, og du bør nok teste på om der findes en record med samme nøgle først, hvis du bruger index:
if not table1.findkey([edit1.text]) then begin table1.insert; table1.fieldbyname('Kunde').value := exit1.text; table1.fieldbyname('næstefelt').value := edit2.text; o.s.v. indtil alle felter er udfyldt og så: table1.post; end;
På denne måde checker du først om recorden allerede eksisterer og hvis ikke bliver den oprettet.
Selvom 'kunde' er en integer (eller en double) kan du overføre dit tal som en tekst. Ved at bruge .asstring udfører Delphi selv konverteringen, hvorimod hvis du bruger .value forventer den at du overfører et tal.
Problemet med denne mulighed er at tallet bliver 0 hvis EditOpretPostnr.Text ikke indeholder et korrekt tal. F.eks. hvis der er et mellemrum foran eller et bogstav i.
Med isnum (hvis der eksisterer sådan en funktion) kan du jo checke om det er et tal inden du overfører det til registret.
Jeg ve dikke om isnum findes men her er en hurtig tilsvarende funktion der gør det samme:
function ertal(s : string) : boolean; var i : integer; begin try i := strtoint(trim(s)); result := true; except on exception do result := false; end; end;
Så hvis ikke isnum findes kan du bruge ertal istedet:
if ertal(EditOpretPostnr.Text) then table1.fieldbyname('Kunde').asstring := trim(EditOpretPostnr.Text);
Og hvis ikke editopretpostnr.text er et tal så skal du vel afbryde oprettelsen !
sjensen
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.