将 MonthName() 函数存储在字符串变量中

Store MonthName() function in a string variable

这里是第一个问题,请放轻松!

我是 Visual Basic(但不是编程)的新手,我在为本地组织工作的项目中遇到了问题。

我有一个按钮可以运行包含单个 "SELECT ... INTO ... " 语句的查询。此语句还会查找字段 RecievedBoxToday 等于 "Yes" 的每条记录。这是工作正常的代码:

SELECT * INTO RENAME_THIS_TABLE
FROM [DATABASE ZERO]
WHERE (([DATABASE ZERO].RecievedBoxToday)=Yes);

现在问题来了(除了 Received 拼写错误之外):此代码每个月都是 运行,但是 table(RENAME_THIS_TABLE ) 每次单击按钮时都会被覆盖。我想每个月都有永久数据,所以我的解决方案是将 RENAME_THIS_TABLE table 重命名为 MONTHNAME_YEAR 其中 MONTHNAME 是月份的名称(一月或十二月) YEAR 是当年(2015 年)。我想我可以用 MonthName() 函数来做这件事,它工作得很好,但我希望能够将这个月的名称存储到一个字符串中,以便与年份连接(也是一个字符串)。后记此字符串将替换 RENAME_THIS_TABLE

我的代码似乎不起作用:

dim Month As String
dim Year As String

MonthName(Month(Date()), False) As Month
Year(Date()) As Year

dim NewName As String = Month + "_" + Year

在此之后,我不知道该去哪里获取这个新的字符串变量并插入到 SQL 代码中,它将替换 RENAME_THIS TABLE

我怎样才能完成这项工作?我可以做这个工作吗?如果重要的话,我正在使用 VBA 和 Microsoft Access 2013。非常感谢任何帮助!

不要使用 MonthYear 作为变量名。这些是 VBA 中的保留(函数)名称。此外,作为快捷方式,您可以只使用 Format() 函数来格式化日期字符串:

Dim strNewName As String
strNewName = Format(Date, "mmmm_yyyy")    ' => "August_2015"

如果您的 SQL 语句存储在单独的字符串中,您可以将新的 table 名称连接到字符串中:

Dim strSql As String
strSql = "SELECT * INTO " & strNewName & " FROM [DATABASE ZERO] WHERE (([DATABASE ZERO].RecievedBoxToday)=Yes);"