PDA

Vollständige Version anzeigen : Leere Felder automatisch Füllen


Jürgen32
26.10.2003, 16:19
hallo zusammen,
ich habe ein Problem mit Datensätzen in einer Tabelle. Es geht sich um eine Kreuzworträtseldatenbank. Ich habe Daten per Excel in meine DB importiert. Leider waren nicht alle Felder ausgefüllt. mein Problem ist folgendes. Im Feld "Frage" steht z.B. ein Begriff in Zeile 1. Die Zeilen 2-20 sind leer. In diese Zeilen müßte der Begriff aus Zeile 1 kopiert werden. Das ganze für ca 190.000 Datensätze. Hat jemand ne Lösung, wie ich das hinbekomme ? Zur besseren Verständlichkeit habe ich eine kleine Beispieldatenbank angehängt.

Ich arbeite mit Access 2000

Johnny Loser
26.10.2003, 16:43
Hi Jürgen,

ich habe Dir mal eben eine Routine dafür geschrieben.
Einfach das Modul öffnen und mit F5 starten.



Unabhängig davon, würde ich mir aber überlegen, die DB so umzugestalten, daß Du eine Haupttabelle mit den Fragen hast und in einer 1:n-Relation über die ID eine Untertabelle mit den Antworten.

Jürgen32
26.10.2003, 17:07
hallo Jonny,
hat alles super geklappt ...danke dir .......
das selbe muß ich jetzt noch für die zeichenlänge machen ...aber das bekomme ich alleine hin ...


nochmal vielen Dank

Jürgen

Nouba
26.10.2003, 17:54
Hallo,

ich habe mal die Tabellen mit Anfügeabfragen, wie Johnny auch empfiehlt, normalisiert.

Jürgen32
27.10.2003, 15:23
hallo nouba hallo Jonny und natürlich allen anderen ein hallo,

was ist denn eurer Meinung nach die schnellste Variante ?? es werden ca 190.000 Datensätze sein. Ich wollte für jede Zeichenlänge eine eigene Tabelle erstellen.
Die Daten aufzuteilen traute ich mich nicht, da ich meinte, ca 190.000 Datensätze + die Verknüpfungen der Fragen wäre langsamer als die Frage und Antwort zusammen zulassen.

mfg
Jürgen

Nouba
27.10.2003, 15:29
Hallo Jürgen,

hier würde ich mal selbst experimentieren. Vielleicht sollte man, wenn nach Zeichenfolgelängen als Bedingung gesucht wird, die Textlänge redundant ablegen und mit einem Index versehen. Die Antworten und Fragen sollten IMHO auch indiziert werden, damit die Suche zügig abläuft. Von mehreren Tabellen rate ich allerdings ab - wie sollte man da noch Beziehungen pflegen können.

Jürgen32
16.11.2003, 15:19
das ist einer der Codes, den ich von Jonny bekommen habe, um meine Felder automatisch zu füllen. Ich soll den code in ein Model speichern und ihn dann über "F5" starten. Das klappt auch alles super. Ich möchte ihn aber über eine Formularschaltfläche aufrufen. kann mir jemand sagen wie ich das mache ??


Function fncFuelleFelder()
Dim rs As Recordset
Dim strTemp As Double
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Datenauswertung ORDER BY ID")
rs.MoveFirst
Do While Not rs.EOF
If Not IsNull(rs!Zeichenlänge) Then
strTemp = rs!Zeichenlänge
Else
rs.Edit
rs!Zeichenlänge = strTemp
rs.Update
End If
rs.MoveNext
Loop
End Function

engri
23.08.2005, 11:29
Vielen Dank :10points:
... ich habe die Funktion angepaßt und per "Call Funktion ... " in die Ablaufprozedur eingebaut ... funktioniert 100%ig

Gruß Enrico :hands:

GerhardKnuth
21.08.2007, 12:23
sage ich aus Hamburg für die kleine Codingstrecke. Hat mir sehr geholfne wieder ins Thema zu finden.

G. Knuth
InKobus.de