Toon posts:

[ACCESS] autoincrement toevoegen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,
Ik heb een tabel met een autincrement veld. Nu wil ik via VB data toevoegen met het volgende script:
code:
1
2
SQLstring = "INSERT INTO tblMutaties VALUES ('??????','" + productnaam + "','" + aantal + "','" + gewicht + "','" + batchnaam + "','" + refwetro + "','" + loods + "','" + rij + "')"
DoCmd.RunSQL SQLstring

Nu weet ik niet wat ik bij het eerste veld moet invoeren(dat autoincrement veld). Vanalles geprobeert maar ik heb nog niets gevonden dat werkt :(

  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 20:50
als het goed is hoef je er niets in te vullen, je kan em gewoon weglaten uit je query.

[ Voor 31% gewijzigd door Ramon op 06-11-2004 23:34 ]

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

INSERT INTO `tabelnaam` (`auto_increment_veld`, `veld1`, `veld2`) VALUES(1, "waarde1", "waarde2");
INSERT INTO `tabelnaam` (`kolom1`, `kolom2`) VALUES("waarde1", "waarde2");

Zo een beetje duidelijk?

Blog [Stackoverflow] [LinkedIn]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

Ramon de Jesus schreef op 06 november 2004 @ 23:33:
als het goed is hoef je er niets in te vullen, je kan em gewoon weglaten uit je query.
Alleen als je de veldnamen opgeeft toch?
code:
1
INSERT INTO tabelnaam (veld2, veld3, veld4) VALUES ('bla', 'foo', 'bar')
Wolfboy schreef op 06 november 2004 @ 23:36:
INSERT INTO `tabelnaam` (`kolom1`, `kolom2`) VALUES("waarde1", "waarde2");

Zo een beetje duidelijk?
Backticks zijn iets van MySQL, die mogen in Access niet. Of zit ik nou weer te blaaten? :P

[ Voor 36% gewijzigd door NMe op 06-11-2004 23:38 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Thx, ik zal het ff uitproberen :)

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

NMe84 schreef op 06 november 2004 @ 23:37:
Backticks zijn iets van MySQL, die mogen in Access niet. Of zit ik nou weer te blaaten? :P
Hehe, oeps :P
Ik werk eigenlijk nooit met Access, wel met een aantal andere databases maar access probeer ik zoveel mogelijk te ontlopen ;)

Blog [Stackoverflow] [LinkedIn]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

Wolfboy schreef op 06 november 2004 @ 23:43:
Hehe, oeps :P
Ik werk eigenlijk nooit met Access, wel met een aantal andere databases maar access probeer ik zoveel mogelijk te ontlopen ;)
In SQL-server (om maar iets beters te noemen) mag het geloof ik ook niet. ;)

Voor de volledigheid een correcte syntax voor Access:
code:
1
INSERT INTO [tabelnaam] ([kolom1], [kolom2]) VALUES('waarde1', 'waarde2');

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

NMe84 schreef op 06 november 2004 @ 23:52:
In SQL-server (om maar iets beters te noemen) mag het geloof ik ook niet. ;)
Laat ik het anders zeggen, ik gebruik geen MS servers ;)
Hmm net ff geprobeerd, werkt in postgre en oracle ook niet :P
Naja, teveel mysql gebruikt blijkbaar O-)

[ Voor 19% gewijzigd door Wolfboy op 07-11-2004 00:18 ]

Blog [Stackoverflow] [LinkedIn]


Verwijderd

Topicstarter
Hoe kan ik een SQL string in de database zetten(als logboek). Nu krijg ik namelijk een error wat waarschijnlijk komt omdat er ' in de sqlstring zitten....
Iemand een idee?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

Verwijderd schreef op 07 november 2004 @ 01:25:
Hoe kan ik een SQL string in de database zetten(als logboek). Nu krijg ik namelijk een error wat waarschijnlijk komt omdat er ' in de sqlstring zitten....
Iemand een idee?
Qoutes escapen. Hoe je dat moet doen moet je maar even op Google zoeken, weet niet hoe het in Access zit. Waarschijnlijk het teken in kwestie herhalen.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Iemand een idee hoe ik die quots automatisch kan laten escapen? Ik kan er op internet weinig over vinden....

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Bij VBScript is het iig zo dat als je een " wil gebruiken dat je "" moet neerzetten, probeer dat eens anders.

Blog [Stackoverflow] [LinkedIn]


Verwijderd

Topicstarter
Het is gelukt met de functie replace().

Nog een vraagje: Als ik een record toevoeg via VB, dan zegt "u staat op het punt een record toe te voegen bla bla bla, weet u het zeker?" Die melding krijg ik 4 keer omdat er 4 records worden toegevoegd. Is het morgelijk die melding te onderdrukken?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

Verwijderd schreef op 07 november 2004 @ 02:00:
Het is gelukt met de functie replace().

Nog een vraagje: Als ik een record toevoeg via VB, dan zegt "u staat op het punt een record toe te voegen bla bla bla, weet u het zeker?" Die melding krijg ik 4 keer omdat er 4 records worden toegevoegd. Is het morgelijk die melding te onderdrukken?
Ja, het showen van die messagebox zelf regelen (als je dat al niet doet), en dan niet in een loop-structuur gebruiken, maar eenmalig.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Om de vraag "u staat op het punt....." te omzeilen kun je twee dingen doen :
- gebruik "DoCmd.SetWarnings False" voordat je de insertstatements uitvoert. Dit schakelt die waarschuwingen uit. Niet vergeten ze naderhand weer aan te zetten

- Gebruik niet "DoCmd.runsql" maar "Database.execute". Deze geeft geen waarschuwingen, en is ook nog vele malen sneller

code:
1
2
3
4
5
6
7
8
9
dim db as database
dim strSQL as string

set db = currentdb

do while [records te inserten]
  strSQL = "mijn SQL hier"
  db.execute strSQL
loop
Pagina: 1