【问题标题】:Using parameters to execute delete statement in vba ms accessvba ms access中使用参数执行delete语句
【发布时间】:2018-04-14 01:40:00
【问题描述】:

我希望在用户单击删除按钮时执行以下删除语句。

CurrentDb.Execute "Delete from [TableName] where ColumnName is not null"

但我希望用户输入表名和列名。你能帮忙吗

【问题讨论】:

  • 您要提示他们还是从表单上的字段中获取值?阅读这篇文章:msdn.microsoft.com/en-us/library/office/…
  • 我想要一个带有下拉列表的弹出消息
  • 使用组合框控件。您是否希望从表格列表中进行选择?
  • 是的,正确。下拉列表中的表名列表
  • 查看我的更新答案。

标签: vba ms-access


【解决方案1】:

这将从表单控件中获取参数

SELECT *
FROM Customers
WHERE Country = _
  [Forms]![frmSelectCountry]![txtCountry]

这将提示用户“输入县”

SELECT *
FROM Customers
WHERE Country = _
  [Enter Country]

提示用户输入表名并提示用户“输入县”:

tblName= InputBox("Please enter a name for the source table", "?")

mysql = "DELETE * FROM " & tblName _
           & "WHERE (((" & tblName & ".[City])=[Enter City]));"

您可以构建一个带有组合框控件(名为“cboTable”)的表单(名为“frmSelectTable”),其中列出了可供选择的表,并让代码检索组合框控件的值。

tblName = [Forms]![frmSelectTable]![cboTable]

融入你的工作

tblName = InputBox("Please enter a name for the source table", "?")
mysql = "DELETE * FROM " & tblName _
           & "WHERE ColumnName Is Not Null;"
CurrentDb.Execute mysql

这里有一个教程,将引导您完成制作具有组合框的表单,该组合框列出了数据库中的所有表: How to Get all Table Names into Combo box

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多