如何在Access能将2个表中的多字段不同查询出来??
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Access能将2个表中的多字段不同查询出来??相关的知识,希望对你有一定的参考价值。
1.以表1为基准时,能查询出表2没有X-a,Y-d
2.以表2为基准时,能查询出表1没有Y-e
使用Access 查询能将这个查询出来?
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个表中的多字段不同查询出来??的主要内容,如果未能解决你的问题,请参考以下文章