如何在Access能将2个表中的多字段不同查询出来??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Access能将2个表中的多字段不同查询出来??相关的知识,希望对你有一定的参考价值。

1.以表1为基准时,能查询出表2没有X-a,Y-d
2.以表2为基准时,能查询出表1没有Y-e
使用Access 查询能将这个查询出来?

Access中可以使用LEFT JOIN和RIGHT JOIN来实现楼主的需求
1.
SELECT 表1.*
FROM 表1 Left JOIN 表2
ON 表1.第一列数据=表2.第二列数据 and 表1.相关数据=表2.相关数据
WHERE 表2.第二列数据 IS NULL

2.
SELECT 表2.*
FROM 表1 right JOIN 表2
ON 表1.第一列数据=表2.第二列数据 and 表1.相关数据=表2.相关数据
WHERE 表1.第一列数据 IS NULL
参考技术A 可以
select table1.fields1,table1.fields2,table2.fields1,table2.fields.2 from table1 inner join table2 on table1.id=table2.id where table1.fields.1=X and table1.fields2
大概格式就是这样的,你表意也不太清楚,我所只能帮到这了。

从 Excel 中查询 Access 中的常规日期字段(错误 13)

【中文标题】从 Excel 中查询 Access 中的常规日期字段(错误 13)【英文标题】:Querying General Date field in Access from Excel (Error 13) 【发布时间】:2015-12-16 01:55:08 【问题描述】:

我需要从 Excel 查询 Access 表中的一般日期字段。请建议如何正确格式化日期以使查询正常工作。这可能是我在查询中遗漏的一个小细节,我无法弄清楚。我尝试以不同的方式格式化日期,如果 Access 中的日期字段格式更改为 short date 但不是我需要使用的一般日期格式,则查询有效。以下是在 Access 中查询短日期的方法:

SQLwhere = SQLwhere & "[MDL_Table1].[UploadDate] BETWEEN " &Format(UserForm1.txtStartDate, "\#mm\/dd\/yyyy\#") & " AND " _ & Format(UserForm1.txtEndDate, "\#mm\/dd\/yyyy\#") & " AND "

我包含了我的代码的一部分。我已使用此代码执行其他查询,并且运行良好。此外,getDate 方法确实返回日期。请参阅下面的代码:

Dim qc1 As String
Dim DateMin As String
Dim DateMax As String
'add error handling

On Error GoTo errHandler:

'Disable screen flickering.
'FastWB True, 3
DateMin = Format(frmCalendar.getDate(DateMin), "mm/dd/yyyy hh:mm:ss AM/PM")
DateMax = Format(frmCalendar.getDate(DateMax), "mm/dd/yyyy hh:mm:ss AM/PM")
Sheet1.Range("A2:AK5000").ClearContents
dbPath = "H:\DEMO\MDL_IonTorrent.accdb"

'set the search variable
qc1 = "_QC"

Set cnn = New ADODB.Connection ' Initialise the collection class variable
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath

SQLwhere = "WHERE "

SQLwhere = SQLwhere & "[MDL_Table1].[UploadDate] BETWEEN #" & DateMin & "#     AND #" _
& DateMax & "# AND "

SQLwhere = SQLwhere & "[MDL_Table1].[AAchange] LIKE '" & "%" & qc1 & "%" & "' AND "
strSQL = "SELECT * FROM [MDL_Table1] "

'Remove the last AND applicable
If SQLwhere = "WHERE " Then
    SQLwhere = ""
Else
    SQLwhere = Left(SQLwhere, Len(SQLwhere) - 5)
End If

strSQL = strSQL & SQLwhere
Set rs = New ADODB.Recordset 'assign memory to the recordset
rs.Open strSQL, cnn

【问题讨论】:

这是部分代码吗?您尚未标注所有变量的尺寸。例如 Dim cnn As ADODB.Connection 。您需要标注所有变量。在 excel VBA 格式函数中,语法为 Format( expression[,format [,firstdayofweek [,firstweekofyear]]])。我不确定它是否支持 getdate 方法。我了解到您正在使用表单日历来选择日期,因为您的代码显示 frmCalendar。如果不支持 getdate,则可以将选择的日期写入工作表隐藏单元格,并可以从那里提取日期。错误 13 是由类型不匹配、未声明的变量或数据不匹配引起的。 顺便说一句,您使用的是哪个版本的 Access 和 Excel? 抱歉您的标签状态为 ms-access-2010 【参考方案1】:

改变

DateMin = Format(frmCalendar.getDate(DateMin), "mm/dd/yyyy hh:mm:ss AM/PM")

DateMin = Format(frmCalendar.getDate(DateMin), "mm-dd-yyyy hh:mm:ss")

对 datemax 做同样的事情。

【讨论】:

@asdev...我收到“找不到项目或库错误。DateMin = Format(frmCalendar.getDate(DateMin), "mm-dd-yyyy hh:mm:ss")Format 突出显示。我之前在工作中没有遇到此错误电脑,但我现在正在尝试在家运行代码。 嗯...您似乎缺少参考。根据您的问题查看此 SO-Post ***.com/questions/507191/…。如果它可以在您的家用计算机上运行,​​请随时通知我。

以上是关于如何在Access能将2个表中的多字段不同查询出来??的主要内容,如果未能解决你的问题,请参考以下文章

Access 中的查找值

mysql 如何查询表中字段,并显示出来?

SQL Server - 使用 PIVOT 查询比较 2 个表中的字段

MS Access 使用表字段作为查询条件

Access数据库中多表联合查询,并显示记录

如何从 2 个表中选择最近的日期时间