如何在 Make Table 查询中添加 Yes/No 列
How to add Yes/No column in a Make Table query
我有一个当前的 Table 查询。我想向该查询添加一个列,该列在新 table 中创建一个带有复选框的 Yes/No 字段。我还希望默认选中所有框(或 Yes 值)。我不确定如何添加到 SQL 语句以正确创建该场景。这是我当前的代码,没有新的 "Reportable" 列:
SELECT
tChart1.[Original Except No] AS [Reportable Except No],
tChart1.[Original Document Number] AS [Reportable Document Number],
tChart1.[Original Travler] AS [Reportable Travler],
tChart1.[Original Exception Amount] AS [Reportable Exception Amount],
tChart1.[Original Destination] AS [Reportable Destination],
tChart1.[Original Exception Nights] AS [Reportable Exception Nights],
tChart1.Explanation AS [Reportable Explanation],
tChart1.Reason AS [Reportable Reason],
tChart1.[Original Comments] AS [Reportable Comments],
tChart1.[Original Campus] AS [Reportable Campus],
tChart1.[Original Date] AS [Reportable Date],
tChart1.[Original Document Number] & "+" & [Original Travler] & "=" & [Original Exception amount] & "+" & [original destination] AS ID
INTO tChart1_Reportable
FROM tChart1;
SELECT ... INTO
查询根本无法执行您想要的操作。
您可以使用 DDL 添加列并设置其 DEFAULT
:
CurrentProject.Connection.Execute "ALTER TABLE tChart1_Reportable ADD COLUMN Reportable YESNO DEFAULT -1;"
然后执行 UPDATE
将 True 存储在现有行中:
CurrentProject.Connection.Execute "UPDATE tChart1_Reportable SET Reportable = True;"
但是,如果您希望该字段显示为复选框,这些步骤可能还不够。您可以在设计视图中打开 table,select 字段,然后是其查找选项卡和显示控件下拉列表中的 select 复选框。
您可以使用 VBA 代码代替...
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Dim prp As DAO.Property
Set db = CurrentDb
Set tdf = db.TableDefs("tChart1_Reportable")
Set fld = tdf.Fields("Reportable")
For Each prp In fld.Properties
If prp.Name = "DisplayControl" Then
Exit For
End If
Next
If prp Is Nothing Then
Set prp = fld.CreateProperty("DisplayControl", 3, 106)
fld.Properties.Append prp
Else
fld.Properties("DisplayControl").Value = 106
End If
我有一个当前的 Table 查询。我想向该查询添加一个列,该列在新 table 中创建一个带有复选框的 Yes/No 字段。我还希望默认选中所有框(或 Yes 值)。我不确定如何添加到 SQL 语句以正确创建该场景。这是我当前的代码,没有新的 "Reportable" 列:
SELECT
tChart1.[Original Except No] AS [Reportable Except No],
tChart1.[Original Document Number] AS [Reportable Document Number],
tChart1.[Original Travler] AS [Reportable Travler],
tChart1.[Original Exception Amount] AS [Reportable Exception Amount],
tChart1.[Original Destination] AS [Reportable Destination],
tChart1.[Original Exception Nights] AS [Reportable Exception Nights],
tChart1.Explanation AS [Reportable Explanation],
tChart1.Reason AS [Reportable Reason],
tChart1.[Original Comments] AS [Reportable Comments],
tChart1.[Original Campus] AS [Reportable Campus],
tChart1.[Original Date] AS [Reportable Date],
tChart1.[Original Document Number] & "+" & [Original Travler] & "=" & [Original Exception amount] & "+" & [original destination] AS ID
INTO tChart1_Reportable
FROM tChart1;
SELECT ... INTO
查询根本无法执行您想要的操作。
您可以使用 DDL 添加列并设置其 DEFAULT
:
CurrentProject.Connection.Execute "ALTER TABLE tChart1_Reportable ADD COLUMN Reportable YESNO DEFAULT -1;"
然后执行 UPDATE
将 True 存储在现有行中:
CurrentProject.Connection.Execute "UPDATE tChart1_Reportable SET Reportable = True;"
但是,如果您希望该字段显示为复选框,这些步骤可能还不够。您可以在设计视图中打开 table,select 字段,然后是其查找选项卡和显示控件下拉列表中的 select 复选框。
您可以使用 VBA 代码代替...
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Dim prp As DAO.Property
Set db = CurrentDb
Set tdf = db.TableDefs("tChart1_Reportable")
Set fld = tdf.Fields("Reportable")
For Each prp In fld.Properties
If prp.Name = "DisplayControl" Then
Exit For
End If
Next
If prp Is Nothing Then
Set prp = fld.CreateProperty("DisplayControl", 3, 106)
fld.Properties.Append prp
Else
fld.Properties("DisplayControl").Value = 106
End If