如何在 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