当前位置:编程学习 > VB >>

vb access 运行窗体时为何总是显示参数不足,期待是1、

这是一窗体成为活动窗体的代码
Private Sub Form_Activate()
   Dim X0 As Long
   Dim Y0 As Long
   '让窗体居中
  X0 = Screen.Width
  Y0 = Screen.Height
  X0 = (X0 - Me.Width) / 2
  Y0 = (Y0 - Me.Height) / 2
   Me.Move X0, Y0
   Dim inty As Integer   '当前年份
   Dim intm As Integer  '当前月份
   Dim intd As Integer  '当前日期
   inty = Year(Date)
   intm = Month(Date)
   intd = Day(Date)
   Dim sqlbuy As String
  Dim sqlfctotal As String '各客户入库总金额
  Dim sqltotal As String  '总入库金额
  Dim rs_check As New ADODB.Recordset
  Dim rs_fctotal As New ADODB.Recordset
  Dim rs_total As New ADODB.Recordset
  rs_check.CursorLocation = adUseClient   '设置游标方式
  rs_fctotal.CursorLocation = adUseClient
  rs_total.CursorLocation = adUseClient

。。。。。

后面的代码是关于选项卡的。有四个选项卡。每个选项卡上有两个datagrid,分别显示两种数据。每个选项卡有两个adodc用来连接数据库,就有8个adodc.
运行时出错提示依次是提示adodc8,adodc6,adodc4,adodc2出错,内容就是参数不足,期待是1 。退出时也会出现相同的错误提示。


看了很多帖子,说的数据库中的字段、数据类型可能不一致,但是去对比了。是一致的。

我在代码上注释断点,出错就是显示在正式执行选项卡的代码前。我都找不出错误的地方了、有的贴友说在数据库中查看是不是变量的混淆。我不会这个。我的数据库是access2007的。。看看吧。。。怎么解决啊。    你的sql语句有问题。  Case 1
          SSTabbuy.TabEnabled(0) = False
          SSTabbuy.TabEnabled(1) = True
          SSTabbuy.TabEnabled(2) = False
          SSTabbuy.TabEnabled(3) = False
        If frmbuy2.Text1.Text = "" And frmbuy2.Text2.Text = "" Then
          sqlbuy = "select * from goods where 入库年 =" & inty _
          & "and 入库月=" & intm & " order by 客户名称,总金额 desc"
          rs_check.Open sqlbuy, conn, adOpenKeyset, adLockPessimistic
          Adodc3.RecordSource = sqlbuy
          Adodc3.Refresh
          DataGrid3.ReBind
          If rs_check.EOF = True Then
          Adodc4.RecordSource = sqlbuy
          Adodc4.Refresh
          DataGrid4.ReBind
          Text2.Text = 0
          MsgBox "您本月没有入库产品!", vbOKOnly + vbInformation, "注意"
          rs_check.Close
          
          Exit Sub
          End If
        Else     ’没有执行下面的代码。不管查询里面有没有数据,都是执行的上面的代码
           sqlbuy = "select * from goods where 入库年 =" & inty _
          & "and 入库月=" & intm & " and 客户编号='" & frmbuy2.Text1.Text & "' and 型号='" & frmbuy2.Text2.Text & "'order by 客户名称,总金额 desc"
          rs_check.Open sqlbuy, conn, adOpenKeyset, adLockPessimistic
          Adodc3.RecordSource = sqlbuy
          Adodc3.Refresh
          DataGrid3.ReBind
          If rs_check.EOF = True Then
          Adodc4.RecordSource = sqlbuy
          Adodc4.Refresh
          DataGrid4.ReBind
          Text2.Text = 0
          MsgBox "您本月没有入库产品!", vbOKOnly + vbInformation, "注意"
          rs_check.Close
          
          Exit Sub
          End If
        End If
          rs_check.Close
          sqlfctotal = "select 客户编号,sum(总金额) as 各客户入库总金额 " _
          & "from goods where 入库年 =" & inty & "and 入库月=" & intm _
          & " group by 客户名称 "
          rs_fctotal.Open sqlfctotal, conn, adOpenKeyset, adLockPessimistic
          Adodc4.RecordSource = sqlfctotal
          Adodc4.Refresh
          DataGrid4.ReBind
          rs_fctotal.Close
          sqltotal = "select sum(总金额) as 入库总金额 from goods where " _
          & " 入库年 =" & inty & "and 入库月=" & intm
          rs_total.Open sqltotal, conn, adOpenKeyset, adLockPessimistic
          Text2.Text = rs_total.Fields(0)
          rs_total.Close
          

这是其中一个选项卡的代码。你看看。我刚刚发现根本就没有执行else后面的语句、、、郁闷 1,SQL语句中各关键字之间需要有空格
2,字段数据类型的变量引用如下:
   sql=" select * from 表名 where 字符型字段='"& 字符型变量 &"' and 数值型字段="& 数值型变量 &" "
怎么都没有人看锕。。自己顶。。坚持 2007的连接串与2003是不同的,你自己网上搜一下。
日期型字段需要用#1990-9-9#
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,