Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: inkognito23 am April 23, 2011, 07:27:50

Titel: Immer gleiche Werte trotz Zufallsgenerator
Beitrag von: inkognito23 am April 23, 2011, 07:27:50
Hallo,

ich möchte in eine Spalte meiner Datenbank für jede Zeile eine neue Zufallszahl zwischen 1947 und 1993 erstellen und erhalte trotz des Codes von der Tipps&Tricks Datenbank (http://www.access-o-mania.de/index.php?ind=tipps&op=entry_view&iden=95) immer den gleichen Wert in jeder Zeile:

Mein Code sieht so aus:
Public Function genZufallsZahl(ByVal Untergrenze As Variant _
  , ByVal Obergrenze As Variant _
  , ByVal sType As Variant _
  ) As Variant

  Randomize
  Select Case sType
    Case 1
      genZufallsZahl = Int((Obergrenze - Untergrenze + 1) * Rnd + Untergrenze)
    Case 2
      genZufallsZahl = (Obergrenze - Untergrenze) * Rnd + Untergrenze
  End Select

End Function


Und in der Aktualisierungsabfrage sieht es so aus:
UPDATE Tabelle SET Tabelle.Feld = genZufallsZahl(1947,1993,1);


Ergebnis:
Es wird 1x eine Zufallszahl generiert und dann wird diese für jede Zeile gleich genommen. Also für die nächste Zeile keine neue Zufallszahl.

Was muss ich noch machen, damit er für jede Zeile eine neue Zufallszahl errechnet?

Vielen Dank!


Titel: Re: Immer gleiche Werte trotz Zufallsgenerator
Beitrag von: bahasu am April 23, 2011, 08:47:05
Moin,

schau mal, ob der Anhang Dir weiterhilft.
Gibt im Modul eine Funktion, die via Abfrage aufgerufen wird und in der Tabelle die Datensätze durchscannt und mit einer Zufallszahl nach der von Dir beschriebenen Variante ersetzt.

Harald
Titel: Re: Immer gleiche Werte trotz Zufallsgenerator
Beitrag von: inkognito23 am April 23, 2011, 08:49:53
Zitat von: bahasu am April 23, 2011, 08:47:05
.

Ein Punkt als Antwort??
Titel: Re: Immer gleiche Werte trotz Zufallsgenerator
Beitrag von: bahasu am April 23, 2011, 08:56:01
Moin

sorry, hatte festgestellt, dass mein erster Vorschlag eine Macke hatte => hatte den zurückgezogen und durch einen Punkt ersetzt, da ich den Beitrag nicht mehr löschen konnte.

Hoffentlich ist jetzt der Vorschlag ok.

Harald

[Anhang gelöscht durch Administrator]
Titel: Re: Immer gleiche Werte trotz Zufallsgenerator
Beitrag von: DF6GL am April 23, 2011, 09:33:29
Hallo,

das geht auch einfacher, wenn man die SQL dazu zwingt, die Funktion pro DS  aufzurufen:


Public Function genZufallsZahl(ByVal Untergrenze As Variant _
  , ByVal Obergrenze As Variant _
  , ByVal sType As Variant _
  , ByVal Dummy As Variant _ 
) As Variant

  Randomize
  Select Case sType
    Case 1
      genZufallsZahl = Int((Obergrenze - Untergrenze + 1) * Rnd + Untergrenze)
    Case 2
      genZufallsZahl = (Obergrenze - Untergrenze) * Rnd + Untergrenze
  End Select

End Function


UPDATE Tabelle SET Tabelle.Feld = genZufallsZahl(1947,1993,1,[Feld]);
Titel: Re: Immer gleiche Werte trotz Zufallsgenerator
Beitrag von: inkognito23 am April 23, 2011, 10:39:13
danke!
beide lösungswege klappt, wobei ich das letztere vorziehe, da es irgendwie schneller bearbeitet wird...