Toon posts:

[accessXP & VBA & SQL] insert into problem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

ik heb volgend statement:
code:
1
2
strSQL = "INSERT INTO Order ('Product_Strength') VALUES (" & Me![Product_Strength] & ")"
CurrentDb.Execute strSQL


ik heb ook strSQL nagekeken wat de output daarvan is:
code:
1
"INSERT INTO Order ('Product_Strength') VALUES (15)"


De tabel naam is Order, kolomnaam is Product_Strength en de datatype is number (integer)

Als ik dit door middel van een knop wil uitvoeren heb ik steeds een Syntax error. Als verschillende dingen geprobeerd maar niks werkt.

Weet iemand wat het kan zijn??

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

werkt:

SQL:
1
INSERT INTO Order (Product_Strength) VALUES (15)


Wel?

[ Voor 10% gewijzigd door BtM909 op 22-05-2003 13:49 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

uhm.. misschien cursusje SQL :P

Insert into order values 15, null , null,... etc.

Kolomnaam kun je voor zover ik weet niet opgeven.. Moet je trouwens wel een insert query hebben en geen update query?

Edit:
excuses.. het kan idd :)
heb het alleen nog nooit hoeven te gebruiken

[ Voor 17% gewijzigd door Verwijderd op 22-05-2003 14:11 ]


  • mim
  • Registratie: Juni 2001
  • Laatst online: 03-05-2007

mim

Wat is precies de foutmelding die je krijgt en wat is precies de code die je onder de button hebt staan?

Verwijderd

Topicstarter
uhm.. misschien cursusje SQL

Insert into order values 15, null , null,... etc.

Kolomnaam kun je voor zover ik weet niet opgeven.. Moet je trouwens wel een insert query hebben en geen update query?
Cursus SQL is niet nodig :*). Aangezien de tabel nog leeg is heb je een insert into nodig en geen update, update is om bestaande records te wijzigen. Kolomnaam moet je nu wel opgeven want ik vul niet alle kolommen in.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op 22 May 2003 @ 13:51:
uhm.. misschien cursusje SQL :P

Insert into order values 15, null , null,... etc.

Kolomnaam kun je voor zover ik weet niet opgeven..
Toch typisch dat Transact SQL documentatie het volgende zegt:
C. Insert data with fewer values than columns
This example creates a table that has four columns. The INSERT statements insert rows that contain values for some of the columns, but not all of them.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE T1 
( column_1 int identity, 
  column_2 varchar(30) 
    CONSTRAINT default_name DEFAULT ('column default'),
  column_3 int NULL,
  column_4 varchar(40)
)
INSERT INTO T1 (column_4) 
   VALUES ('Explicit value')
INSERT INTO T1 (column_2,column_4) 
   VALUES ('Explicit value', 'Explicit value')
INSERT INTO T1 (column_2,column_3,column_4) 
   VALUES ('Explicit value',-44,'Explicit value')
:P

[ Voor 18% gewijzigd door BtM909 op 22-05-2003 13:58 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
Mim,

de foutmelding is:
runtime error '3134'

Syntax error in INSERT INTO statement.

De code is:
code:
1
2
3
4
5
6
7
8
Private Sub Order_add_Click()

Dim strSQL As String

strSQL = "INSERT INTO Order (Product_Strength) VALUES (" & Form![Product_Strength] & ")"
CurrentDb.Execute strSQL

End Sub

  • xtra
  • Registratie: November 2001
  • Laatst online: 13-08 11:30
Verwijderd schreef op 22 May 2003 @ 13:43:
Als ik dit door middel van een knop wil uitvoeren heb ik steeds een Syntax error. Als verschillende dingen geprobeerd maar niks werkt.

Weet iemand wat het kan zijn??
Waar komt de syntax error vandaan? Zit die in je code of in het sql-statement?
Werkt de query wel als je die in Access zelf uitvoert?

[ Voor 1% gewijzigd door xtra op 22-05-2003 14:01 . Reden: Antwoord al gegeven ]


  • xtra
  • Registratie: November 2001
  • Laatst online: 13-08 11:30
Hmm... idee.
Order is niet alleen de naam van jouw tabel, maar ook een 'reserved word' in SQL. Zet Order eens tussen blokhaken.

Verwijderd

Topicstarter
"INSERT INTO Order (Product_Strength) VALUES (15)" werkt ook niet als ik hem in Access zelf uitvoer. Zelfde fout

  • mim
  • Registratie: Juni 2001
  • Laatst online: 03-05-2007

mim

Verwijderd schreef op 22 mei 2003 @ 13:59:
Mim,

de foutmelding is:
runtime error '3134'

Syntax error in INSERT INTO statement.

De code is:
code:
1
2
3
4
5
6
7
8
Private Sub Order_add_Click()

Dim strSQL As String

strSQL = "INSERT INTO Order (Product_Strength) VALUES (" & Form![Product_Strength] & ")"
CurrentDb.Execute strSQL

End Sub
Probeer inderdaad ff of je statement in een query in Access wel werkt. Dat debuged ff wat makkelijker dan sluit je fouten in de code uit.

Verwijderd

... INSERT INTO [Order] (Product_Strength) VALUES ( ....

heb verder niets gelezen, dus neem aan dat je in de tabel [order] een record probeert te inserten.

[ Voor 48% gewijzigd door Verwijderd op 22-05-2003 14:19 ]


Verwijderd

Topicstarter
Ja,
probleem is inmiddels opgelost, de velden in de tabel waren allemaal verplicht om in te vullen, hierdoor kreeg ik dus een fout.
Tevens moest ik de naam Order wijzigen.

Bedankt voor de hulp
Pagina: 1