使用vba在访问中向表中添加新字段

时间:2016-05-11 12:33:16

标签: sql vba ms-access-2013

我在使用alter table命令时遇到错误。我尝试使用循环基于变量每月为每个月创建一个字段,但是由于我没有得到所需的结果,所以它没有经过。代码创建一个名为monthly的列,然后在第二次迭代时给出错误。代码如下:

Dim x As Integer
Dim Months As Integer
Dim monthly As String

Months = Me.YearsBack * 12

Set db = CurrentDb
If Me.Period = "monthly" Then
    For x = 1 To 2
    'Months
    monthly = "WP M" & x
    db.Execute "ALTER TABLE tblEPdata ADD COLUMN [monthly] string;"
    Next
End If

1 个答案:

答案 0 :(得分:0)

SomeObject.objects.values('key', 'other_field').annotate(sum_0=Sum('some_value_field'), sum_1=Sum('some_other_field')) 只是您正在执行的字符串的一部分,它不会从具有相同名称的变量中自动解析。

你需要字符串连接:

[monthly]

Dim S As String S = "ALTER TABLE tblEPdata ADD COLUMN [" & monthly & "] string;" Debug.Print S db.Execute S 有助于调试,输出转到立即窗口(Ctrl + G)。

请注意上面代码中的语法着色。

Debug.Print

是一个常量字符串。

"ALTER TABLE tblEPdata ADD COLUMN [" 将字符串和变量连接成一个新字符串。

需要[方括号],因为您的字段名称包含空格(例如&)。