Just nu i M3-nätverket
Gå till innehåll
Sasja

Vad blir ID-numret?

Rekommendera Poster

Kör med Access 2000 (9.0.2812) och min connection sträng ser ut som följer

 

[MÄRK]<%[/MÄRK]
[color="#0000ff"]Set[/color] Connection = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"Adodb.Connection"[/GRÅ])
Connection.Provider = [GRÅ]"Microsoft.Jet.OLEDB.4.0"[/GRÅ]
MdbFilePath = [b]Server[/b].MapPath([GRÅ]"blablabla.mdb"[/GRÅ])
Connection.ConnectionString = [GRÅ]"Data Source='"[/GRÅ] & MdbFilePath & [GRÅ]"'"[/GRÅ]
Connection.Open
[MÄRK]%>[/MÄRK]

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Jag ändrar mig, trodde jag testat det där men det verkar onekligen inte fungera med Access.

 

Du får nog tyvärr använda två frågor efter varandra, eller använda recordset metoden jag föreslog tidigare då du får en del gratis på det sättet.

 

 

 

[inlägget ändrat 2004-10-08 16:37:12 av PBL]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Helt omöjligt är det ju inte att id skulle ändra sig emellan men inte särskilt sannolikt, som tidigare sagts, har du så många samtidiga användare är kanske inte Access bästa lösningen ändå.

 

Alternativet är ju att använda ett recordset istället för att köra frågan direkt med conn.execute, då får du det nya id värdet helt gratis efter att du uppdaterat.

 

Hade du kört SQL server hade den där sql frågan fungerat utmärkt men Access vill inte vara med på det där tydligen.

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

> Hade den fungerat med mySQL månne?

 

Inte exakt som det är, MySQL använder annan syntax.

 

Vad har du emot recordset metoden ? Om du förklarar dina invändingar så kan jag besvara det :-)

 

Du behöver inte hämta hela tabellen när du öppnar recordsetet som i mitt tidigare exempel, du kan göra en dummy query som inte hämtar någonting.

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Menar du koden du skrev som ser ut så här?

[color="#0000ff"]Set[/color] rs = [b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"ADODB.Recordset"[/GRÅ])
rs.Open [GRÅ]"Table1"[/GRÅ], [GRÅ]"conn_str"[/GRÅ], 1, 3

rs.AddNew
rs([GRÅ]"Text1"[/GRÅ]) = [GRÅ]"blaha"[/GRÅ]
rs.Update

id = rs([GRÅ]"ID"[/GRÅ])

[inlägget ändrat 2004-10-08 17:36:58 av Sasja]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Menar du koden du skrev som ser ut så här?

 

Ja

 

Måste man inte för sånt här inkludera en lååång fil?

 

Du tänker på adovbs.inc, den behövs inte om du som i mitt exempel använder värderna direkt 1, 3

 

Du kan också speca typbiblioteket i global.asa med en meta tag så behöver man aldrig inkludera den på någon sida.

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Får man fråga vrför du inte bara slänger in semikolonet där det ska vara?

 

SQL = [GRÅ]"INSERT INTO threads(subject) VALUES('"[/GRÅ]& [b]Request[/b].form([GRÅ]"message"[/GRÅ]) &[GRÅ]"')[b] ; [/b]SELECT IDENTITY As idnummer"[/GRÅ]

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Har redan provat det och fick som svar felmeddelandet:

 

Feltyp:

Microsoft JET Database Engine (0x80040E14)

Tecken efter slutet av SQL-uttryck.

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Jag verkar ha missuppfattat SQL referensen, man kan inte ha vilken select sats som helst efter en insert utan vad jag tänkte på var en fråga av typen "INSERT INTO Table1 SELECT * FROM TABLE2" där man alltså hämtar data från en tabell och plockar in det i en annan.

 

Ledsen för förvirringen men i vilket fall som helst så funkar den lösning med recordset som jag gav först och de blir nog den du får använda om du inte vill göra två querys här.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...