5

相当简单的问题。我有一个表单中的文本字段,我希望将默认值设置为查询结果。此特定查询返回我在 Access 中设置的小型发票系统的默认税率。

查询 (qrySettingsDefaultTaxRate) 如下所示,并返回一行,其中包含我想以这种形式设置为默认值的十进制税率:

SELECT CDbl([value]) AS default_tax_rate
FROM settings
WHERE (((settings.key_name)="default_tax_rate"));

我尝试将我的文本字段的默认值设置为:

=[qrySettingsDefaultTaxRate]![default_tax_rate]

然而这并没有奏效。当我返回表单视图时,该框会显示“ #Name? ”作为默认值,而不是返回查询结果。

4

4 回答 4

4

您可以将文本框的控制源设置为DLookup,或在代码中将值设置为 DLookup 。

DlookUp("default_tax_rate","qrySettingsDefaultTaxRate")

或者

DlookUp("default_tax_rate","settings","settings.key_name='default_tax_rate'") 

您甚至可以将 DLookUp 放在默认值下的属性表上。

Dlookup 默认值

于 2013-01-06T21:49:26.003 回答
4

我有一个类似的问题。这对我有用 - 我编写了一个函数,它返回我想设置为默认值的值,并以表单的默认值指定函数。

我的代码:

Public Function MaxTDate()
    MaxTDate = CurrentDb.OpenRecordset("MaxTDateQry").Fields(0)
End Function

...在字段属性中:

默认值 =MaxTDate()

于 2013-08-16T09:57:22.537 回答
2

尽管现在答案已经打勾,因为在某些情况下正确答案就足够了。

可能存在默认值来自表达式、外部文件、用户输入或任何其他计算的情况。

Microsoft Access 抛出#Name 的原因是什么?错误是因为它希望字符串数据用撇号引用“。同时还说,如果字符串本身包含撇号,它也需要转义。想想php中的addlashes。

所以给一个特定的变量 DefValue,

Dim DefValue
DefValue = "This is a static string or result from database query or other computation"
TextBox.DefaultValue = """" & Replace(DefValue, """", """""") & """"

所以,在你的情况下,它将是"""" & Replace([qrySettingsDefaultTaxRate]![default_tax_rate], """", """""") & """"

于 2014-11-06T03:19:04.347 回答
1

Fionnuala 的答案在第二部分中包含错误。不幸的是,我的编辑被拒绝了两次,所以现在我将其作为单独的回复发布。它需要如下:

DLookUp("value","settings","settings.key_name='default_tax_rate'") 

原因是在原始 Tablesettings中调用了该列value,而default_tax_rate仅在qrySettingsDefaultTaxRate基于 的查询中创建了该列settings

于 2019-07-09T10:21:30.810 回答