MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 25.03.2006, 08:39   #1
Business
Neuer Benutzer
Neuer Benutzer
Standard Acc2002/XP - Denkfehler?

Hallo,

Ich weiß nicht genau wie ich an dieses Problem herangehen soll.

Ich hab in einer Datenbank 20 "Ja/Nein" Wert-Felder.

Jetzt möchte ich die Datenbank mit einer Schleife(!) befüllen, nämlich so, dass jede nur mögliche Kombination !nur einmal! vorhanden ist.

Vl. kann mir da jemand mit einem Lösungsweg helfen.

Danke

Gruß
Business ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 26.03.2006, 14:40   #2
jernst
MOF User
MOF User
Standard

Hallo,

hast Du eine bestimmte Vorstellung für ein Muster, oder sollen wirklich alle Möglichkeiten durchgegangen wrden?

In dem Falle würden 2^20 DS erzeugt und das würde, denke ich einige Zeit dauern.

Gruß Jörn
jernst ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 26.03.2006, 17:02   #3
kama
MOF Guru
MOF Guru
Standard

Hallo

Zunächst braucht man eine Function die die Möglichkiten von Dezimal nach Binär ausgibt und zwar 20 Stellig

Code:

Function Dec2Bin(ByVal Dec As Long) As String
'Dieser Source stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.
' Von Dezimal in Binaer

Dim Rest As Long
Do
      Rest = Dec Mod 2              ' Den Rest bei einer Division
' durch 2 errechnen
      Dec2Bin = Rest & Dec2Bin      ' Rest und bishereige Binaer Zahl
' zusammentun
      Dec = Dec \ 2                 ' Dezimal Zahl durch 2 Teilen
Loop Until Dec = 0                  ' Solange bis Dezimal-Zahl = 0 ist
' Auf Ausgabe immer 20 stellig geändert von k.maraun
Dec2Bin = IIf(Len(Dec2Bin) < 20, String(20 - Len(Dec2Bin), "0") & Dec2Bin, Dec2Bin)
End Function
Dann noch etwas was die Tabelle mit den daten füllt
Code:

Private Sub Befehl44_Click()
Dim x As Long
For x = 0 To 1048575
    Me.Dezimal = x
    Me.Binär = Dec2Bin(x)
    Me.Bol1 = Val(Mid(Me.Binär, 1, 1)) * -1
    Me.Bol2 = Val(Mid(Me.Binär, 2, 1)) * -1
    Me.Bol3 = Val(Mid(Me.Binär, 3, 1)) * -1
    Me.Bol4 = Val(Mid(Me.Binär, 4, 1)) * -1
    Me.Bol5 = Val(Mid(Me.Binär, 5, 1)) * -1
    Me.Bol6 = Val(Mid(Me.Binär, 6, 1)) * -1
    Me.Bol7 = Val(Mid(Me.Binär, 7, 1)) * -1
    Me.Bol8 = Val(Mid(Me.Binär, 8, 1)) * -1
    Me.Bol9 = Val(Mid(Me.Binär, 9, 1)) * -1
    Me.Bol10 = Val(Mid(Me.Binär, 10, 1)) * -1
    Me.Bol11 = Val(Mid(Me.Binär, 11, 1)) * -1
    Me.Bol12 = Val(Mid(Me.Binär, 12, 1)) * -1
    Me.Bol13 = Val(Mid(Me.Binär, 13, 1)) * -1
    Me.Bol14 = Val(Mid(Me.Binär, 14, 1)) * -1
    Me.Bol15 = Val(Mid(Me.Binär, 15, 1)) * -1
    Me.Bol16 = Val(Mid(Me.Binär, 16, 1)) * -1
    Me.Bol17 = Val(Mid(Me.Binär, 17, 1)) * -1
    Me.Bol18 = Val(Mid(Me.Binär, 18, 1)) * -1
    Me.Bol19 = Val(Mid(Me.Binär, 19, 1)) * -1
    Me.Bol20 = Val(Mid(Me.Binär, 20, 1)) * -1
    DoCmd.GoToRecord , , acNewRec
Next x
End Sub
Das füllt die ja/nein Felder (bol1 bis 20) mit 0 bzw -1 entsprchend der besetzung an den Binärstellen.

Die beispiel DB füllt nur die letzten 2000
Der Zeitaufwand für das füllen ist IMHO auch bei allen datensätzen erträglich.
Ausserdem könnten die SQL Freaks meinen Denkansatz (wenn er korrekt ist )entsprechend umsetzen.
Angehängte Dateien
Dateityp: zip db7.zip (21,1 KB, 13x aufgerufen)

__________________

kama
Take it easy und schlaf mal drüber.

Geändert von kama (26.03.2006 um 17:56 Uhr).
kama ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 26.03.2006, 19:28   #4
df6gl
MOF User
MOF User
Standard

Hallo,

mein Vorschlag:


Dim db As Database
Set db = CurrentDb
Dim i As Long
Dim rs As DAO.Recordset
Dim ii As Long
Set rs = db.OpenRecordset("janein")


For i = 0 To 2 ^ 20 - 1

rs.AddNew

For ii = 0 To 19
rs("F" & ii + 1) = (i \ 2 ^ ii) Mod 2
Next

rs.Update


' Alternativ mit Anfügeabfrage
'db.Execute "INSERT INTO janein ( F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20) SELECT " & _
'(i \ 2 ^ 0) Mod 2 & " , " & _
'(i \ 2 ^ 1) Mod 2 & " , " & _
'(i \ 2 ^ 2) Mod 2 & " , " & _
'(i \ 2 ^ 3) Mod 2 & " , " & _
'(i \ 2 ^ 4) Mod 2 & " , " & _
'(i \ 2 ^ 5) Mod 2 & " , " & _
'(i \ 2 ^ 6) Mod 2 & " , " & _
'(i \ 2 ^ 7) Mod 2 & " , " & _
'(i \ 2 ^ 8) Mod 2 & " , " & _
'(i \ 2 ^ 9) Mod 2 & " , " & _
'(i \ 2 ^ 10) Mod 2 & " , " & _
'(i \ 2 ^ 11) Mod 2 & " , " & _
'(i \ 2 ^ 12) Mod 2 & " , " & _
'(i \ 2 ^ 13) Mod 2 & " , " & _
'(i \ 2 ^ 14) Mod 2 & " , " & _
'(i \ 2 ^ 15) Mod 2 & " , " & _
'(i \ 2 ^ 16) Mod 2 & " , " & _
'(i \ 2 ^ 17) Mod 2 & " , " & _
'(i \ 2 ^ 18) Mod 2 & " , " & _
'(i \ 2 ^ 19) Mod 2


Next
rs.Close
Set rs = Nothing




Allerdings könnte man sich die Speicherung der Formfelderwerte auch als Bit-Muster in einem einzigen Long-Tabellenfeld anstelle der 20 Boolschen Felder vorstellen, wenn es wirklich nötig ist, alles in einem DS zu hinterlegen.

__________________

Grüße vom Bodensee
Franz, DF6GL
df6gl ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.03.2006, 22:24   #5
Business
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hey danke, das ist genau das, wonach ich gesucht hab =)

Fettes Lob ++
Business ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.