Why won't this access 2003 insert work?

Posted on 2004-04-29
Last Modified: 2010-04-07
I am very new to the world of Access and have been trying to get an application to insert a record into a table. I keep getting an error stating :

Syntax error in INSERT INTO statement

I have checked my insert statement over many times and if I actually print it to the page and then copy it onto the clipboard.  Then, I go into the Access db and enter it in the SQL window, it inserts just fine.  

Here is the SQL:

insert into users (username, password, nickname) values ('testuser','testpwd','testnickname')

That table(users) looks like this:

uid                              autonumber (pk)
username                    text (pk)
password                     text
nickname                     text

I created this table new this morning and have not done anything in regards to security. I have not difficulty retrieving data from the table. Here is the code I am using:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim oConn As OleDbConnection
        Dim sql As String
        Dim cmdInsert As OleDbCommand

        sql = "insert into users (username, password, nickname) values ('" & _
                     txtUsername.Text & "','" & _
                     txtPassword.Text & "','" & _
                     txtNickname.Text & "')"

            oConn = New OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;data source=C:\testing.mdb;")
            cmdInsert = New OleDbCommand(sql, oConn)
        Catch err As Exception
            lblError.Text = sql
        End Try
    End Sub

Am I just having problems because whatever user is opening the database does not have insert priviledges?  If so, how would I set it up so that they do?
Question by:asfilo
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 28

Assisted Solution

mmarinov earned 100 total points
ID: 10954233
the user that will open the mdb from your web application is just one - the user that process is running under
go to %windows%/
search there for the processModel tag and what user is set there under userName

so you have to set appropriate permissions to the mdb file for this user only and your application will work


Accepted Solution

Sashi Rachabattula earned 150 total points
ID: 10954489
Here are two cases

first one is the check for the permission of mdb file if it has only read only permission
give permission to  IUSER_MACHINENAME user

second case

Avoid writing raw sql quries with in code  like

sql = "insert into users (username, password, nickname) values ('" & _
                     txtUsername.Text & "','" & _
                     txtPassword.Text & "','" & _
                     txtNickname.Text & "')"

instead  use parameters in query example:

sql = "insert into users (username, password, nickname) values (@username,@password,@nickname)"

commandname=new oldbcommand(sql,connection)
commandname.Add(@username,txtUsername.Text )
commandname.Add(@password,txtPassword.Text )
commandname.Add(@nikname,txtNickname.Text )


Expert Comment

by:Sashi Rachabattula
ID: 10954496
Oops its

commandname.Parameters.Add(@username,txtUsername.Text )
commandname.Parameters.Add(@password,txtPassword.Text )
commandname.Parameters.Add(@nikname,txtNickname.Text )
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Expert Comment

by:Sashi Rachabattula
ID: 10954516

Oh parameter should be in double quotes

commandname.Parameters.Add("@username",txtUsername.Text )
commandname.Parameters.Add("@password",txtPassword.Text )
commandname.Parameters.Add("@nickname",txtNickname.Text )

Expert Comment

by:Sashi Rachabattula
ID: 10954533
Table structure shows that username is PK

uid                              autonumber (pk)
username                    text (pk)
password                     text
nickname                     text

Are u validating for unique username before inserting a new record??

Author Comment

ID: 10960357
When I check the database file properties, the read-only box is not checked, is this the only place where permissions on that file can be set?  If not, could you tell me where else to check?  

I modified my sql to utilize the parameters as well, and that did not correct the issue I am having.

Any other ideas?

Author Comment

ID: 10961056
I figured out how to assign ISUR_MACHINENAME permission to the db file (and its directory), but that has not seemed to fix the issue either.

Expert Comment

by:Volkan Vardar
ID: 11097174

sql = "insert into users ([username], [password], nickname) values ('" & _
                     txtUsername.Text & "','" & _
                     txtPassword.Text & "','" & _
                     txtNickname.Text & "')"

because username and password are variables that MS Access uses.
good luck

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Sometimes in DotNetNuke module development you want to swap controls within the same module definition.  In doing this DNN (somewhat annoyingly) swaps the Skin and Container definitions to the default admin selections.  To get around this you need t…
User art_snob ( encountered strange behavior of Android Web browser on his Mobile Web site. It took a while to find the true cause. It happens so, that the Android Web browser (at least up to OS ver. 2.…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question