标题: 想学第一个VBA程序 [打印本页] 作者: renyucai1963 时间: 2011-9-7 13:13 标题: 想学第一个VBA程序 请大家教我一个最简单的程序,第一次用。
请帮个忙!
谢谢。作者: roych 时间: 2011-9-7 20:26
Sub Test()
Msgbox"这是一个最简单的程序"
End Sub
Sub Test2()
Dim i As Long
i = 1
Do Until i > 5
MsgBox "我打算弹5次"
i = i + 1
Loop
End Sub
实际上,应当先了解VB语法,熟悉后程序写起来就方便多了。作者: renyucai1963 时间: 2011-9-7 21:20
roych 发表于 2011-9-7 20:26
Sub Test()
Msgbox"这是一个最简单的程序"
End Sub
程序运行的非常好,谢谢版主。
请版主帮助看看,这段代码如何用:
假设Field1是数值字段
Field2是文本字段
for i=1 to 1000000
cnn.execute "Insert into aTable (Field1,Field2) VALUES(cstr(i),'项目" & cstr(i) & "')"
next
是把这段代码放在模块里,还是什么地方?请教一教。
谢谢。作者: roych 时间: 2011-9-8 00:38
可以新建模块放进去再调用。——别忘了加上Sub 函数名()噢。
也可以在写入按钮的单击事件里。
最好在前面定义Dim i As Long,否则很容易因为变量类型未定义而出错。
此外,当然需要把相应的变量改回你的表名称和字段名称。作者: renyucai1963 时间: 2011-9-8 08:07
非常感谢版主。作者: renyucai1963 时间: 2011-9-9 13:38 本帖最后由 renyucai1963 于 2011-9-9 13:42 编辑
[attach]46660[/attach][attach]46660[/attach]
Sub REN_A()
For i = 1 To 10
cnn.Execute "Insert into 表1 (字段1) VALUES(cstr(i))"
Next
End Sub
版主,请帮助在看看,出现上面的提示,是那里出了问题,请帮助改一改。作者: roych 时间: 2011-9-10 18:05
要把变量分离开来写。
Sub REN_A()
For i = 1 To 10
cnn.Execute "Insert into 表1 (字段1) VALUES('" & i & "')"
Next
End Sub作者: renyucai1963 时间: 2011-9-11 17:11
roych 发表于 2011-9-10 18:05
要把变量分离开来写。
Sub REN_A()
For i = 1 To 10
版主,问题还是提示“要求对象”。
请问那里出了问题。作者: roych 时间: 2011-9-11 18:38
哦,不好意思,之前复制你的代码时没仔细看。你没有定义数据连接对象。
Sub REN_A()
Dim cnn As New ADODB.Connection
For i = 1 To 10
cnn.Execute "Insert into 表1 (字段1) VALUES('" & i & "')"
Next
End Sub作者: renyucai1963 时间: 2011-9-12 08:40 本帖最后由 renyucai1963 于 2011-9-12 08:48 编辑
[attach]46667[/attach]
roych 发表于 2011-9-11 18:38
哦,不好意思,之前复制你的代码时没仔细看。你没有定义数据连接对象。
Sub REN_A()
Dim cnn As New ADOD ...
Option Compare Database
Sub REN_A()
Dim cnn As New ADODB.Connection
Dim i As Long
For i = 1 To 10
cnn.Execute "Insert into 表1 (序号) VALUES('" & i & "')"
Next
End Sub
[attach]46666[/attach]
版主,在帮助看看,出现上面对话框,是那里有问题,我上传了附件,如可以的话,帮助修改一下。
谢谢。作者: roych 时间: 2011-9-12 13:43
噢。大概是没有执行命令的缘故吧。此外,你的附件中序号为数值型,因此需要在原先的基础上去掉单引号。
Sub REN_A()
'定义数据连接
Dim cnn As ADODB.Connection
'定义ADO命令
Dim cmd As New ADODB.Command
Dim i As Long
'设置为当前工程连接
Set cnn = CurrentProject.Connection
For i = 1 To 10
'设置命令文本并执行之。
cmd.CommandText = "Insert into 表1 (序号) VALUES(" & i & ")"
cnn.Execute cmd.CommandText
Next
End Sub
复制代码
用Docmd.RunSQL会更简洁些,以下代码供参考。
Sub REN_A()
DoCmd.SetWarnings False
For i = 1 To 10
DoCmd.RunSQL "Insert into 表1 (序号) VALUES(" & i & ")"
[attach]46707[/attach]
帮助看看。作者: roych 时间: 2011-9-17 11:46
表的设计不合理。
首先,Access不是Excel,聚合函数是不能对多个字段进行数据处理的。因此,应当设置为:
编号 组别 数据
1 组别1 1
2 组别1 2
3 组别1 3
4 组别1 4
5 组别1 5
6 组别1 6
7 组别2 2
8 组别2 3
9 组别2 4
10 组别2 5
11 组别2 6
12 组别2 7
…………………………
然后按组别分组,对数据进行标准方差计算。作者: roych 时间: 2011-9-17 12:08
大体做了一个,详见附件的测试查询。请留意表2和表1的区别。作者: renyucai1963 时间: 2011-9-18 12:10
Sub shuangseqiu()
DoCmd.SetWarnings False
Dim i As Integer, j As Integer, k As Integer, l As Integer, m As Integer, n As Integer
Dim sum As Integer
Const z = 3
For i = 1 To z
For j = i + 1 To z + 1
For k = j + 1 To z + 2
For l = k + 1 To z + 3
For m = l + 1 To z + 4
For n = m + 1 To z + 5
sum = i + j + k + l + m + n
DoCmd.RunSQL "Insert into 双色球数据库 ( 壹,贰,叁,肆,伍,陆,和值) VALUES(" & i & " ," & j & "," & k & "," & l & "," & m & "," & n & "," & sum & ")"
Next n
Next m
Next l
Next k
Next j
Next i
End Sub作者: renyucai1963 时间: 2011-9-19 23:11
版主,请问如何把数据库放到U盘上。作者: renyucai1963 时间: 2011-9-20 16:32 本帖最后由 renyucai1963 于 2011-9-20 16:32 编辑
Sub shuangseqiu()
DoCmd.SetWarnings False
Dim i As Integer, j As Integer, k As Integer, l As Integer, m As Integer, n As Integer, o As Integer
Dim sum As Integer
Const z = 28
For i = 1 To z
For j = i + 1 To z + 1
For k = j + 1 To z + 2
For l = k + 1 To z + 3
For m = l + 1 To z + 4
For n = m + 1 To z + 5
For o = 1 To 16
sum = i + j + k + l + m + n
DoCmd.RunSQL "Insert into 表1( 壹,贰,叁,肆,伍,陆,和值,篮球) VALUES(" & i & " ," & j & "," & k & "," & l & "," & m & "," & n & "," & sum & "," & o & ")"
Next o
Next n
Next m
Next l
Next k
Next j
Next i
End Sub
33选6 16选1作者: renyucai1963 时间: 2012-9-28 09:58
renyucai1963 发表于 2011-11-13 12:52
Sub shuangseqiu()
DoCmd.SetWarnings False
Dim i As Integer, j As Integer, k As Integer, l As Integ ...