【问题标题】:understanding msaccess query了解 ms 访问查询
【发布时间】:2012-05-07 21:40:15
【问题描述】:

从下面的查询中你们可以选择正在使用什么类型的表和表列吗?我是ms的新手,访问它很混乱,我看过了,是不是下面这个 正在使用表/列?

表名 ||表格列 com020 (.t_nama,.t_namb) mcs031 (.t_suno,.t_dsca)

并在表 com020 中的列 t_cbrn 上进行 RIGHT JOIN。

而且不明白为什么 & ContryCode & 一直在使用。

Sub VSearch(Letter,Name,Vcode,LPage,CurrentPage)
dim countryCode
countryCode = readfromRegistry("HKEY_LOCAL_MACHINE\SOFTWARE\HR\DSN\mkCountryCode")

dim oRs2,Query2,i,colourcount
Set oRs2 = Server.CreateObject("ADODB.Recordset")

Query2 = "SELECT com020" & countryCode & ".t_nama, com020" & countryCode & ".t_namb,  ttccom020" 
& countryCode & ".t_suno, mcs031" & countryCode & ".t_dsca FROM mcs031" & countryCode
& " RIGHT JOIN com020" & countryCode & " ON mcs031" & countryCode & ".t_cbrn = com020" &   countryCode & ".t_cbrn "

if letter <> "" then
Query2 = Query2 & "WHERE (com020" & countryCode & ".t_nama) Like '" & QueryFix(Letter) &     "%'  escape '\' ORDER BY com020" & countryCode & ".t_nama"
elseif name <> "" then
Query2 = Query2 & "WHERE LOWERCASE((com020" & countryCode & ".t_nama)) Like '%" &  LCase(Name) & "%' ORDER BY com020" & countryCode & ".t_nama"
elseif Vcode <> "" then
Query2 = Query2 & "WHERE (com020" & countryCode & ".t_suno) Like '%" & UCase(Vcode) & "%'  ORDER BY com020" & countryCode & ".t_nama"
elseif LPage <> "" then
Query2 = Query2 & "WHERE (com020" & countryCode & ".t_cbrn) = '" & LPage & "' ORDER BY com020" & countryCode & ".t_nama"
end if

【问题讨论】:

  • 列是 t_namat_nambt_sunot_dsca 但是你所有的表以国家代码命名,例如如果 CountryCode 是 ABC,则您的表名将是 msc031ABCcom020ABC
  • 谢谢尼克!我现在明白了。

标签: sql vb.net ms-access ms-access-2007


【解决方案1】:

如果您在数据库中使用了变量表,则 countryCode 用于形成附加查询。这样就不必更新查询来处理每个表。

列的名称是: t_nama t_namb t_suno t_dsca

我发现在创建查询时在调试模式下中断视图并将保存 SQL 的变量复制到您的“立即”窗口中以在查询形成后查看查询结果很有用。

【讨论】:

    猜你喜欢
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多