图表用MSCHART控件啊,如果要计算时间,只要提取期间数据啊,平均值只是SQL的一个函数啊,你真是学了3天,麻烦你看看帮助好不好。
解决方案 »
- 实时错误 '3021' eof或eof 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录
- 在一本书上看到的例,请问retval=shell(Fname,1)的意思
- 那位帮我看下这段代码,结果怎么老是为0
- like模糊查询,我想截取当中几个字查询怎样实现呢?
- 如何改变滚动条的颜色?
- 好奇怪的问题 , 关于vsflexgrid控件的DataSource属性
- 散分了!!!
- 交流一下,说说你最喜欢的VB网站
- datagrid里的数据我改不了,怎么办?
- 我该怎样操作才能在网络上推广我的软件?
- vb修改数据记录的问题?急!
- 今晚必须解决的问题,请大家帮帮忙,让小弟能睡个安稳觉吧. 我已经没分可送了. 急!!!!!!!!!!!!!!!!!
private sub command1_click()
sqlstring="select * from data"
rs.open sqlstring,conn,1,1
do while not rs.eof
使用line 画线(x轴从原点到...),具体看msdn
使用line 画线(y轴),具体看msdn
使用line 画矩形(柱状图),具体看msdn
rs.movenext
loop
end sub
private sub command2_click()
sqlstring="select * from data where 日期<'" & text1.text & "' and 日期>'" & text2.text & "'"
rs.open sqlstring,conn,1,1
dim i as long,j as integer
j=rs.recordcount
do while not rs.eof
i=clng(rs.fields("金额"))+i
rs.movenext
loop
dim endmoney as long
endmoney=i/j
end sub
sqlstring="select * from data where 日期<'" & text1.text & "' and 日期>'" & text2.text & "'"
rs.open sqlstring,conn,1,1
dim i as long,j as integer
j=rs.recordcount
do while not rs.eof
i=clng(rs.fields("金额"))+i
rs.movenext
loop
dim endmoney as long
endmoney=i/j
end sub
这段不行啊,输入两个日期后按纽显示错误,选调试后显示这段rs.open sqlstring,conn,1,1为黄色,怎么办
sqlstring="select * from data"
2.rs.open sqlstring,,,adcmdtext 时你最好指明RS的属性,如:rst.CursorType = adOpenKeyset
rst.LockType = adLockOptimistic等.
3.用MSCHART是个好方法.
情况1
Private Sub Command2_Click()
sqlstring = "select * from data where 日期<'" & Text1.Text & "' and 日期>'" & Text2.Text & "'"
rst.CursorType = adOpenKeyset
rst.LockType = adLockOptimistic
rs.Open sqlstring, , , adCmdText
Do While Not rs.EOF
Loop
Dim a As Long, b As Double
b = rs.RecordCount
Do While Not rs.EOF
a = CDbl(rs.Fields("金额")) + a
rs.MoveNext
Loop
Dim c As Double
c = b / a
Text3.Text = cEnd Sub
完成后输入两个日期,日期格式均为2002-10-15的样式,结果显示实时错误424,要求对象。选调试,rst.CursorType = adOpenKeyset为黄色情况2
Private Sub Command2_Click()
sqlstring = "select * from data where 日期<'" & Text1.Text & "' and 日期>'" & Text2.Text & "'"
rst.CursorType = adOpenKeyset
rst.LockType = adLockOptimistic
rs.Open sqlstring, conn, 1, 1
Do While Not rs.EOF
Loop
Dim a As Long, b As Double
b = rs.RecordCount
Do While Not rs.EOF
a = CDbl(rs.Fields("金额")) + a
rs.MoveNext
Loop
Dim c As Double
c = b / a
Text3.Text = c
也与上面一样。此外
rst.CursorType = adOpenKeyset
rst.LockType = adLockOptimistic
rs.Open sqlstring, conn, 1, 1
这几句不管怎么调换它们的先后顺序,出错选调试时都是第一个显黄色还有不要日期sqlstring="select * from data"
依然是rs.Open sqlstring, conn, 1, 1显黄色。
我真没办法了,对rs.Open sqlstring, conn, 1, 1这句不懂,参数、属性的设置也不会。谁能教教我?
rs.open "select avg(金额) as 平均 from data where 日期>=#" & format (begindate,"yyyy-mm-dd")& "# and 日期<=" & format(enddate,"yyyy-mm-dd") & "#"
average = rs!平均
dim cnn as new adodb.connection
dim rs as new adodb.recordset
dim strCnn, strSQL as stringstrCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & IIf(Right(App.Path, 1) <> "\", "\", "") & "mydb.mdb;Persist Security Info=False"
cnn.open
strSQL = "select avg(金额) as 平均 from data where 日期>=#" & format (begindate,"yyyy-mm-dd")& "# and 日期<=" & format(enddate,"yyyy-mm-dd") & "#"
rs.open strSQL, cnn
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & IIf(Right(App.Path, 1) <> "\", "\", "") & "mydb.mdb;Persist Security Info=False"这句是不是连接到我用access建立的文件的设置啊?我建立的文件路径是d:\data\db1.mdb,该怎么设呢?请教教我吧,我找不到这方面的资料,完全不懂啊。
2 如果你的可执行文件在数据库的统一目录下:
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & IIf(Right(App.Path, 1) <> "\", "\", "") & "db1.mdb;Persist Security Info=False"
这样的好处是使用了应用路径,打包安装后不会发生数据库路径错误。其中IIf(Right(App.Path, 1) <> "\", "\", "") 的作用是安装在根目录下或子目录下均可正常运行。
当然,你也可以:
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\data\db1.mdb;Persist Security Info=False"
但是,打包安装后运行时可能找不到数据库。
Dim cnn As New adodb.Connection
Dim rs As New adodb.Recordset
Dim strCnn, strSQL As String
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\data\db2.mdb;Persist Security Info=False"
cnn.Open
strSQL = "select avg(金额) as 平均 from data where 日期>=#" & Format(begindate, "2002-1-4") & "# and 日期<=" & Format(enddate, "2002-1-9") & "#"
rs.Open strSQL, cnnEnd Sub
显示实时错误,[micrsoft][odbc驱动程序管理器]未发现数据源名称并且未指定默认驱动程序。
我是用xp,怎么装odbc啊?
另外,strSQL = "select avg(金额) as 平均 from data where 日期>=#" & format (begindate,"yyyy-mm-dd")& "# and 日期<=" & format(enddate,"yyyy-mm-dd") & "#"
rs.open strSQL, cnn这句是把平均显示出来吗?
rs.open "select avg(金额) as 平均 from data where 日期>=#" & format (begindate,"yyyy-mm-dd")& "# and 日期<=" & format(enddate,"yyyy-mm-dd") & "#"
average = rs!平均 这句放在上面那句上吗?
我比较笨,请耐心指导
然后遍历 adoRs ,将每条记录的金额字段累加到一个变量就行了。
这对你这个“3天VB学习者”来说不难吧!图表用MSCHART。网站应该有这个的实例代码,你找找看。
Dim NewDyn As Recordset
Dim OpenWs As Workspace
Dim OpenDB As Database
Set OpenWs = DBEngine.Workspaces(0)
Set OpenDB = OpenWs.OpenDatabase("D:\data2\db2.mdb")
Set NewDyn = OpenDB.OpenRecordset("select * from data", dbOpenSnapshot)
Dim i As Long, j As Integer
j = NewDyn.RecordCount
Do While Not NewDyn.EOF
i = CLng(NewDyn.Fields("金额")) + i
NewDyn.MoveNext
Loop
Dim endmoney As Long
endmoney = i / j
Text1.Text = endmoney
问题是只是把所有金额的和求出来了,我明明除了j来求平均呀?
还有就是只能把启动程序时的数据加出来,一旦修改了数据就只能再启动程序,怎样实现数据库刷新?
我写成这样Set NewDyn = OpenDB.OpenRecordset("select * from data where 日期>='2002-1-1' and 日期<='2002-1-5'", dbOpenSnapshot)
但编译时却显示data type mismatch in criteria expression
这是最后的问题了,其他问题都已解决,谁能解决这个就结帖!
谁能给个正确代码?要从text1和text2输入的时间来选择的。
[email protected]