加入两个访问表到一个
有人可以帮我写一个查询,将两个表加入一个。我尝试以下,但我得到的错误:加入两个访问表到一个
"No value given for one or more required parameters."
Dim CmdStr As String = "SELECT col1, col2 FROM table1 UNION SELECT col1,col2 FROM table2"
你的问题还不清楚。 UNION和JOIN是完全不同的东西。我们需要更多关于您的表格外观以及您的期望结果的详细信息。
如果您有例如
table1 table2
| col1 | col2 | | col1 | col2 |
|------|------| |------|------|
| 1 | 4 | | 5 | 7 |
结果为UNION(仅可能的,如果表1和表2具有相同的数据类型)
SELECT col1, col2 FROM table1
UNION
SELECT col1, col2 FROM table2
|------|------|
| 1 | 4 |
| 5 | 7 |
结果为JOIN
SELECT t1.col1, t1.col2, t2.col1, t2.col2
FROM table1 t1 CROSS JOIN table2 t2
|t1.col1|t1.col2|t2.col1|t2.col2|
|-------|-------|-------|-------|
| 1 | 4 | 5 | 7 |
进一步有各种不同类型的外的 and inner JOINS 查看概览here
假设通过join
你不是指在sql语境中该术语的通常含义,如果你问的是sql问题,并且假设你想从这两个表中得到结果,那么你写的sql如果数据库中存在表Table1
和Table2
并且它们都有col1和col2,则表示正确。考虑到UNION
运营商默认情况下只选择不同的值,而UNION ALL
也会选择重复。但你有错误:"No value given for one or more required parameters."
似乎并不是一个SQL错误。它似乎是由您的编程代码引发的,最有可能填充数据集/记录集的地方。如果发布更多代码,可以提供更好的答案。
我认为你需要共享你的代码的其余部分,它看起来像你使用这样的事情
Dim cmd as ADODB.command
Dim CmdStr As String = "SELECT col1, col2 FROM table1 UNION SELECT col1,col2 FROM table2"
cmd.CommandText = cmdStr
给我们更多的代码,也许我们可以帮助你更好。
太感谢你了,在座的各位,我是absolate新的,但我觉得我可以得到它现在的工作.heres我使用的代码
Imports System.Data.OleDb
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\deletedb.accdb;Jet OLEDB:Database Password=1")
Dim CmdStr As String = "SELECT col1, col2 FROM table1 UNION SELECT col1,col2 FROM table2"
con.Open()
Dim cmd As OleDbCommand = New OleDbCommand(CmdStr, con)
cmd.ExecuteNonQuery()
con.Close()
MsgBox("Done")
End Sub
当您将代码拆分为段落(即当您将空行放在中间时)时,Ticks(')停止作为标记符号工作。在这种情况下,将其格式化为代码块(使用“{}”按钮或将所有代码行缩进至少4个空格)。 – 2011-03-21 07:05:17
它看起来像这个问题是你的数据源字符串。默认情况下,访问权限有一个名为Admin的用户使用空白密码。除非您已将安全性添加到数据库,否则连接字符串应为
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\deletedb.accdb;User ID=Admin;Password="
您的表结构是什么样的?你的SQL看起来是正确的,但是其中一个表中很可能不存在col1或col2。此外,请包括所有相关的代码。请帮助我们来帮助你。 – JohnFx 2011-03-20 04:08:34
你的编程环境是什么?在VBA中,你当然不能在你声明的同一行中赋值变量。 – 2011-03-24 19:29:24