我在使用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
答案 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 ["
将字符串和变量连接成一个新字符串。
需要[方括号],因为您的字段名称包含空格(例如&
)。