2012-12-08 44 views
3

如何在Microsoft Access中运行INSERT SQL查询?运行插入SQL查询

例如:

INSERT INTO tbl_UserPurchase (ID, Name) Values (321, Joe) 
+0

如果你的问题是关于如何使用Access接口,这不是一个编程问题。你的查询看起来很好,除了你需要'Joe'的单引号。 –

+1

'乔'应该是'乔'...这就是它... –

回答

3

您可以在Ac中构建您的查询查看设计器,然后在设计视图中单击功能区上的“运行”。 (查找红色的解释点)

如果要从代码执行此操作,可以使用DAO数据库对象或ADO CurrentProject.Connection对象的.Execute方法。

Dim strInsert As String 
strInsert = "INSERT INTO tbl_UserPurchase (ID, Name)" & vbCrLf & _ 
    "VALUES(321, 'Joe');" 
CurrentDb.Execute strInsert, dbFailOnError 

然而,参数查询会更灵活(用于其他的用户名,不只是乔),并防止SQL注入。

Dim db As DAO.database 
Dim qdf As DAO.QueryDef 
Dim strInsert As String 

strInsert = "INSERT INTO tbl_UserPurchase (ID, Name)" & vbCrLf & _ 
    "VALUES (321, [which_user]);" 
Set db = CurrentDb 
Set qdf = db.CreateQueryDef("", strInsert) 
' you could read the parameter value from a text box on a form, 
' but this example will just hard code Joe 
qdf.Parameters("[which_user]").value = "Joe" 
qdf.Execute dbFailOnError 
Set qdf = Nothing 
Set db = Nothing 

而且还有其他方法来剥皮这只猫。如果没有任何建议是令人满意的,请向我们提供更多关于如何以及在哪里运行INSERT的详细信息。

+0

谢谢你的回复!当我单击用户表单中的命令按钮时,我基本上想要运行INSERT查询,并且这些值将来自文本框值。文本框的值也将被插入到不同的表中,任何想法如何实现?也为这个项目安全不是问题:) – neeko

+2

在你的命令按钮的点击事件过程中使用最后一个代码示例。并将'qdf.Parameters'行更改为:'qdf.Parameters(“[which_user]”)。value = Me.YourTextBoxNameHere' – HansUp

+0

非常感谢!如果我使用相同的代码布局执行SELECT查询,那么你能帮我多做一件事情吗?然后,我会如何将该查询的结果(作为输出的一个结果)转换为用于单独INSERT查询中的参数 – neeko

3

需要引用文字在SQL:

INSERT INTO tbl_UserPurchase (ID, Name) VALUES (321, 'Joe') 
2

我觉得名字字段是VarChar(或DB一些字符串值),所以它的意思是你查询应该是

INSERT INTO tbl_UserPurchase (ID, Name) Values(321, 'Joe'); 
-1

试试这个:INSERT INTO tbl_name VALUES (1, 'xyz')

请让我知道,如果为你工作。

好运