Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Visual Basic 6.0 / VBA » Brauche dringend Hilfe

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
15.12.2003, 23:31 Uhr
HRI-Dummy



Hallo!

Ich hab ein echtes Problem. Ich hab der Sekretärin vom Chef versprochen ein Access Makro für sie zu schreiben und jetzt habe ich bloß noch ein paar Tage Zeit (bis Donnerstag). Ich hab schon ganze Nächte drangesessen, aber ich kriegs einfach nicht hin. Ich beschreib mal das Problem.
Es geht um zwei Spalten einer Access 2000 Tabelle. Kontakt_Nr und Name. Das Makro soll automatisch nach jedem neu eingefügten Datensatz die Tabelle alphabetisch nach Name sortieren (das kleinste Problem) und dann die Kontakt_Nr zu jedem Datensatz neu einfügen, also UPDATE. Das ganze soll dann so aussehen:

Kontakt_Nr Name
1 Ahrend
2 Anders
3 Bach
4 Müller

also praktisch von 1 mit dem Alphabet aufsteigend.
Ich krieg den Zugriff auf die Tabelle nicht hin, krieg nicht raus wie ich auf die Anzahl der Datensätze zugreifen soll und die WHERE Bedingung für die UPDATE Anweisung fällt mir auch beim besten Willen nicht ein.
Ich will in einer Schleife durch alle Datensätze laufen und jeden Datensatz aktualisieren, aber wie funktioniert das bloß? Das kann doch nicht so schwer sein...
Bitte wenn mir jemand helfen kann, die Zeit rennt mir weg und ich stehe echt Scheiße da wenn ich das nicht schaffe.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.12.2003, 19:12 Uhr
HRI-Dummy



Bitte laßt mich nicht hängen. Ich weiß ich hab hier in diesem Forum selber noch nichts an Hilfe beigetragen, aber wie Euch sicher nicht entgangen ist, bin ich dafür auch noch nicht gut genug.
Ich würde hier nicht so rumheulen, wenn ich nicht schon alles versucht hätte, ich raff's einfach nicht...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.12.2003, 19:23 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Ich habe von dem ganzen Accesmakrokrempel keine ahnung aber ich weiss nicht ob das schlau ist das so zu machen aber egal....
Eigentlich muss du beim einfügen nur die komplette tabelle einmal durchgehen und bei allen Datensätzen die grösser sind (grösser heist in dem fall das der jeweilige name lexikographisch nach dem eingefügten namen kommt) einfach die laufende Nummer um eins erhöhen...
Ich wage allerdings zu beweifeln das er sich das gefallen lässt falls kontak_nr ein schlüsselattribut ist.
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.12.2003, 19:29 Uhr
HRI-Dummy



Also danke erstmal, damit ist eine Frage schon fast gelöst.
Das mit dem Name größer ist rein theoretisch klar, allerdings geht das nicht in SQL soweit ich weiß (ich lasse mich gerne eines Besseren belehren). Das wäre ja schließlich die WHERE Bedingung für die Update Anweisung. Weißt Du, ob das irgendwie machbar ist in SQL?
Und wie laufe ich durch die ganze Tabelle? Dafür fehlt mir die Anzahl Datensätze, keine Ahnung wie ich darauf zugreifen soll.
Ich dachte ich führe einfach eine SQL-Anweisung aus (select count(*) from table) und weise den Wert einer Variablen zu, allerdings ist DoCMD.RunSQL eine Prozedur, hat somit keinen Rückgabewert und läßt sich also auch nicht einer Variablen zuweisen. Dumm, was mach ich bloß?
Danke jedenfalls daß Du versuchst mir zu helfen, ich bin sooooooooooooo dankbar!
(Bitte mach weiter )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
16.12.2003, 21:09 Uhr
~falko
Gast


hallo

ich weis ja nicht ob dein problem schon gelösst ist, aber ich habe noch eine idee wie mann das bewerkstalligen kann.

frage einfach de splate Name ab und zwar mit der 'ORDER BY' anweisung. die sortiert dir nämlich dir splate nach dem alpabet.

Z.B.

select name from TABELL ordner by name

mit while.eof (eof=end of file, dass heist vom ersten bis zum letzten datensatz) kannst du dann jeden namen ermitteln.

in die schleife baust du dann die UPDATE anweisung, und ordnest dem ersten namen die erste nummer zu

Z.B.

update set Kontakt_Nr=1 where name=NAME

die 1 erhöhst du jedesmal um ein, ganz einfach

also nochmal

######################################
select name from TABELL ordner by name

while.eof
update set Kontakt_Nr=1 where name=NAME
datansatz.movenext
wend
######################################

und wenn du dich beeinlst, ekommst du vieleicht noch einen stich bei deiner sekretärin.

gruß falko
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
16.12.2003, 21:57 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


nur würde ich nicht überall Kontakt_Nr=1 schreiben

also nochmall ohne tippfehler:


Code:
SELECT NAME FROM tabelle ORDER BY name

while.eof
  UPDATE tabelle SET kontakt_nr=1 WHERE NAME=name
  datansatz.movenext
wend


(ich hab keinen plan von vba, also frag mich nicht wie du dann die freie kontakt_nr kriegst
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
16.12.2003, 22:25 Uhr
Pablo
Supertux
(Operator)



Zitat:
HRI-Dummy postete
Bitte laßt mich nicht hängen. Ich weiß ich hab hier in diesem Forum selber noch nichts an Hilfe beigetragen, aber wie Euch sicher nicht entgangen ist, bin ich dafür auch noch nicht gut genug.
Ich würde hier nicht so rumheulen, wenn ich nicht schon alles versucht hätte, ich raff's einfach nicht...



Tut mir leid, aber ich habe nie mit VBA gearbeitet und mit Access auch nicht, Sonst hätte ich dir schon geholfen.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
16.12.2003, 22:30 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Pablo
wenn hier jeder aus dem forum der noch nicht damit gearbeitet dies mit einem Post in dem Thread kundtut , sprengen wir glaube ich locker die 20 seiten marke...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
16.12.2003, 22:33 Uhr
Pablo
Supertux
(Operator)


ich verstehe ehrlich nicht, was du damit meinst! Ich bin heute wohl müde, also verstehe echt wenig
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 16.12.2003 um 22:33 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
16.12.2003, 22:57 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Pablo
wie jetzt echt nicht....?
ich meinte wenn jeder aus dem Forum der diese Frage nicht beantworten kann schreibt das er leider nicht helfen kann wird das ein 20 oder mehr seiten thread....
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Visual Basic 6.0 / VBA ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: