04. december 2000 - 14:48Der er
7 kommentarer og 1 løsning
Test om værdien eksitere i tabellen
Jeg ville gerne teste om denne værdi jeg laver eksitere i forvejen , i min tabel \" !TA_Key , KeyID\" og hvis den gør så prøv at gennere en ny og bliv ved indtil den laver en værdi der ikke findes i forvjen. hvordan gør man det. ???
Private Sub Kommandoknap0_Click() Dim MyValue
Dim db As Database Dim rsSet As Recordset
MyValue = Int((1000000 * Rnd) + 1) \' Frembring en tilfældig værdi mellem 1 og 1000000. Debug.Print MyValue Set db = CurrentDb() Set rsSet = db.OpenRecordset(\"TA_Key\")
Jeg ville lave en hurtig rutine der gjorde sådan her:
Dim Flag as booleon
Flag = 0
rsSet.Movefirst \'hopper til den første position if rsset.eof and rsset.bof then rsset.addnew rsset!keyid = NULL rsset.Update end if Do Until Flag = 1 if rsSet!KeyID = MyValue then MyValue = Int((1000000 * Rnd) + 1)\'Frembring en tilfældig værdi mellem 1 og 1000000. \'Debug.Print MyValue Set db = CurrentDb() Set rsSet = db.OpenRecordset(\"TA_Key\") end if if rsSet.eof then flag = 1 rsSet.movenext loop rsSet.movelast rsSet.AddNew rsSet!KeyID = MyValue rsSet.Update
Nej det har du ret i... Jeg beskriver min hendsigt istedet for, så kan det være du selv kan klare ærterne.
1. Der skulle jeg oprette alle dimentioneringerne, her glemte jeg alle dine. 2. Tjekkede jeg når jeg såd på plads nummer et, i tabellen om det var en ny tabel, hvis ja skulle den udfylde første felt med NULL, det vil gå galt hvis du ikke tager højde i din tabel for denne værdi. 3. Hoppede til starten af tabelen. 4. Ville køre rutinen til Flag = 1 5. Så sammenlignede den variablem MyValue med værdien der står i tabelen KeyID, er de ens skulle den generere et nyt tal, her glemte jeg også at tabellen skulle startes forfra. 6. Hvis tabelen kunne løbes igennem uden at ramme ind i et tal der eksisterede (hvis den ramte et tal der eksisterede ville den jo starte forfra)ville den sætte flaget = 1 7. Her skulle igen være en if sætning, som hed er flag ikke et så hop til næste pkt. i tabelen. 8. Kommer ud af løkken fordi flag blev sat til at være 1, så skulle tallet gemmes i tabelen.
Her er lidt kode til det jeg skrev herover, prøv at sætte de manglende faktorer ind, og se om det hjælper.
\'2. If rsSet.bof and rsSet.eof then rsSet.AddNew rsSet!KeyId = \"0\" rsSet.Update End If \'Generer MyValue \'4. Do Until Flag = True \'Kører løkken til flag er sandt \'Sammenligner tabbelens værdi med din MyValue \'5. If rsSet!KeyID = MyValue then \'Genere en ny værdi rsSet.Movefirst End If \'6. If rsSet.EOF then Flag = True \'7. If Flag = False then rsSet.MoveNext Loop \'Gem den nye værdi i tabellen.
tak for hjælpen det er lang tid siden og jeg kan ikke huske om du løste problemet , men tak alligevel her er dine point
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.