Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Nummer vervollständigen anhand von Teilnummern

Begonnen von T417, Oktober 14, 2010, 16:32:56

⏪ vorheriges - nächstes ⏩

T417

Ich hab da ein Problem, bei den ich schon einige Stunden hänge. Wahrscheinlich sehe ich den Wald vor lauter Bäume nicht.
Also:
Ich habe eine Auftrag_Nr und eine Teilauftrag_Nr. Jede Teilauftrag_Nr braucht eine Auftrag_Nr.
Problem dabei ist nur, das ich beim zusammenfügen der Tabellen genau dies erzeugt habe.
Tabellenaufbau:
Auftrag_Nr     Teilauftrag_Nr
     5                      4
     8                      7
                             7
                             7
    12                   14
    13                   15
                           15
undsoweiterundsoweiter...

Jetzt will ich die leeren Auftrag_Nr mit den Werten, die mit der Teilauftrag_Nr dabei sind kombinieren.
Also wo die zB Teilauftrag_Nr 7 ist, ist logischerweise die Auftrag_Nr = 8.

Ich bekomme das aber nicht in eine ordentlichen SQL-String. Soweit waren meine Gedankenspiele:
CurrentDb.Execute ("UPDATE Hilfswerk1 SET Auftrag_Nr=(SELECT Auftrag_Nr FROM Hilfswerk1 WHERE NOT Auftrag_Nr IS NULL GROUP BY Teilauftrag_Nr)")
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

DF6GL

Hallo,


etwa:

Update tblTabelle set Auftrag_Nr = DLookUp("Auftrag_nr","tblTabelle ","Teilauftrag_Nr= " & [Teilauftrag_Nr] & " and Auftrag_nr is not null")

T417

Ich habs etwas umgeschrieben, der Code ist aber im Prinzip der gleiche.:
Dim GnaVar As String
GnaVar = DLookup("Auftrag_Nr", "Hilfswerk1", "Teilauftrag_Nr= " & [Teilauftrag_Nr] & " AND Auftrag_Nr IS NOT NULL")
CurrentDb.Execute ("UPDATE Hilfswerk1 SET Auftrag_Nr= '" & GnaVar & "'")


Nur bekomme ich dabei:
Laufzeitfehler '2465':
Microsoft Access kann das in ihren Ausdruck angesprochenden Feld '|' nicht finden.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7


oma

Hallo,

sonst mache doch direkt eine Aktualisierungsabfrage:

Update Hilfswerk1
set  Auftrags_Nr = dlookUp("Auftrags_Nr","Hilfswerk1","Teilauftrags_NR=" & [Teilauftrags_Nr])
where Auftrags_Nr Is Null


Gruß Oma
nichts ist fertig!

T417

Ich bin heut noch nicht ganz fit, aber wie soll ich das ins VBA packen. Da meckert doch der Compiler ständig wegen der Klammersetzung und den Anführungstrichen.  ???

Oder meint ihr in einer seperaten Access-Abfrage?

Eiin direkter VBA-String wäre mit da eigendlich lieber.


Grüße
T.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

DF6GL

Hallo,

das was wir geantwortet haben, sind SQL-Statements und kein VBA.


Update Hilfswerk1 set  Auftrags_Nr = dlookUp("Auftrags_Nr","Hilfswerk1","Teilauftrags_NR=" & [Teilauftrags_Nr] & " And Auftrags_Nr Is not Null)

In VBA halt so:
CurrentDb.Execute = "Update Hilfswerk1 set  Auftrags_Nr = dlookUp('Auftrags_Nr','Hilfswerk1','Teilauftrags_NR=' & [Teilauftrags_Nr] & ' And  Auftrags_Nr Is  not Null')"



Wobei hier die Ausführung einer gespeicherten Abfrage mit obigen SQL-Statement nicht zu bemängeln wäre...


T417

#7
Also wenn du die Abfrage in Klammer schreibst, stimmts schon eher:
CurrentDb.Execute ("Update Hilfswerk1 set  Auftrags_Nr = dlookUp('Auftrags_Nr','Hilfswerk1','Teilauftrags_NR=' & [Teilauftrags_Nr] & ' And  Auftrags_Nr Is  not Null')")
So langsam wirkt die Koffein/Zucker-Kur (->Cola), allmählich werde ich wach. :)


Ich hab nur noch ein kleines Problem bei den Werten (Fehlermeldung: 2 Parameter wurden erwartet), aber das ist ein Problem von den Tabellen.
Ich melde mich nochmal wenns geklappt hat.

Danke
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

T417

Einzige Problem war, das ich anstatt Auftrags_Nr, in der Tabelle Auftrag_Nr stehen hatte.  ;D
Hat dann aber hervoragend geklappt. :D


Vielen Dank, Dlookup war mir in einer SQL-Abfrage nun doch neu.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7