Toon posts:

Ophalen currentId in ASP / MS Access

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Vraagje over iets waar ik al eeuwen niet uitkom.
Probleem: Ik ben een admin aan hetbouwen, waarbij records kunnen worden ingevoerd.

ASP gebruikt roept de sql query in Access en invoeren van een record lukt wel.

Maar... dan wil ik gelijk daarna aan het record een ander iets toevoegen (met update in de query).

Daarbij heb ik het ID van de net ingevoerde record nodig.
Nu doe ik het met:
code:
1
select id from tabelnaam where xx order by id desc

Ik had m eerst op
code:
1
select max(id)

.

Maar beide oplossingen geven soms de goede record terug, soms een vórige!

Wie o wie kan mij hierbij helpen? in sqlserver is @@identity een oplossing, maar ik kan dit dus niet gebruiken met mijn Access db!!

Thx!

Verwijderd

the quick and dirty:
zet de twee statements, de insert en de select max(id), in een transaction.
Hierdoor weet je zeker dat de select als eerste statement na de insert wordt uitgevoerd.

beter is echter:
insert into tabel
(kolom2, kolom3)
values ('waarde1', 'waarde2')

select max(kolom1)
from tabel
where kolom2 = 'waarde1'


Omdat je toch niet achter het laatste record aanzit maar acter het id van het zojuist ingevoegde record zal deze methode altijd correct werken.

  • whoami
  • Registratie: December 2000
  • Laatst online: 11:59
@@identity kan je gebruiken in Access 2000

https://fgheysels.github.io/


Verwijderd

Topicstarter
klopt, maar

insert into (bla) values (bla);
select @@identity;

in access 2000 als query kan niet! dan geeft ie:

"characters found after end of sql statement"

doe ik het met een ; alleen achter de laatste select, dan zoekt ie het. laat ik de ; helemaal weg, dan geeft ie ook de melding dat ie de "semicolumn"!!

Hoe moet ik het oplossen als ik in Access 2000 kies in een db: "queries" > "new" > "design view"

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:41

gorgi_19

Kruimeltjes zijn weer op :9

Over dit probleem is hier een artikel geschreven:

http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=79

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • 3o3
  • Registratie: Oktober 2001
  • Laatst online: 30-07-2006

3o3

ook snel&vies maar ik gebruikte nog wel es iets als:

SELECT top(1) idx FROM table ORDER BY idx DESC

Verwijderd

Topicstarter
Gorgi_19, thx, ik had deze manier als eerste geprobeerd ;)
Allemaal bedankt voor jullie hulp, ik heb het probleem gevonden: de select max(id) werkte gelijk na de insert niet altijd even goed, omdat ik deze acties via een COM object heb laten lopen. Nu heb ik acties rechtstreeks naar de database uitgevoerd en werkt het vlekkeloos!

Nogmaals, thx voor de ideeen!
Pagina: 1