Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

类型不匹配

rongch  发表于:2010-04-08 14:07:13  
复制

Private Sub Command56_Click()
On Error GoTo Err_Command56_Click

    Dim str1 As String
    Dim str2 As String
    Dim str3 As String
    Dim str4 As Long
    Dim str5 As Long
    Dim str6 As Long
    Dim str7 As String
    Dim str8 As String
    Dim str9 As String
    Dim str10 As String
    Dim str11 As String
    Dim str12 As String
    Dim str13 As String
    Dim str14 As String
    Dim str15 As String
    Dim str16 As String
    Dim str17 As String
    Dim str18 As String
    Dim str19 As String
    Dim str20 As String
   
    str1 = IIf(IsNull(Me.项目号), "", Me.项目号)
    str2 = IIf(IsNull(Me.系列号), "", Me.系列号)
    str3 = IIf(IsNull(Me.机器型号), "", Me.机器型号)
    str4 = IIf(IsNull(Me.客户ID), "", Me.客户ID)
    str5 = IIf(IsNull(Me.销售方), "", Me.销售方)
    str6 = IIf(IsNull(Me.开机方), "", Me.开机方)
    str7 = IIf(IsNull(Me.发货日期), "", Me.发货日期)
    str8 = IIf(IsNull(Me.开机日期), "", Me.开机日期)
    str9 = IIf(IsNull(Me.开机人员), "", Me.开机人员)
    str10 = IIf(IsNull(Me.额定压力_Mpa), "", Me.额定压力_Mpa)
    str11 = IIf(IsNull(Me.排气量), "", Me.排气量)
    str12 = IIf(IsNull(Me.单位), "", Me.单位)
    str13 = IIf(IsNull(Me.主电机型号), "", Me.主电机型号)
    str14 = IIf(IsNull(Me.额定电压_V), "", Me.额定电压_V)
    str15 = IIf(IsNull(Me.额定电流_A), "", Me.额定电流_A)
    str16 = IIf(IsNull(Me.主电机系列号), "", Me.主电机系列号)
    str17 = IIf(IsNull(Me.制造商), "", Me.制造商)
    str18 = IIf(IsNull(Me.轴承输出端型号), "", Me.轴承输出端型号)
    str19 = IIf(IsNull(Me.轴承尾端型号), "", Me.轴承尾端型号)
    str20 = IIf(IsNull(Me.状态), "", Me.状态)
   
    DoCmd.GoToRecord , , acNewRec
   
    Me.项目号 = str1
    Me.系列号 = str2
    Me.机器型号 = str3
    Me.客户ID = str4
    Me.销售方 = str5
    Me.开机方 = str6
    Me.发货日期 = str7
    Me.开机日期 = str8
    Me.开机人员 = str9
    Me.额定压力_Mpa = str10
    Me.排气量 = str11
    Me.单位 = str12
    Me.主电机型号 = str13
    Me.额定电压_V = str14
    Me.额定电流_A = str15
    Me.主电机系列号 = str16
    Me.制造商 = str17
    Me.轴承输出端型号 = str18
    Me.轴承尾端型号 = str19
    Me.状态 = str20
   
Exit_Command56_Click:
    Exit Sub

Err_Command56_Click:
    MsgBox Err.Description
    Resume Exit_Command56_Click
   
End Sub

    我写了这个代码,是想按下按钮时将当前记录的所有栏目的值赋值到下一条记录。

    我发现只有在Str4,Str5,Str6(即定义为长整形的三个栏目)全不为空时,才能赋值成功。只要其中的任意一个或几个为空,就会显示“类型不匹配”。请问是什么问题啊?

 

Top
咱家是猫 发表于:2010-04-08 16:56:05

str4 = IIf(IsNull(Me.客户ID), 0, Me.客户ID)
str5 = IIf(IsNull(Me.销售方), 0, Me.销售方)
str6 = IIf(IsNull(Me.开机方), 0, Me.开机方)
在下面赋值给控件时,如果有需要,先判断下这些变量是否值为0

if str4 <> 0 then Me.客户ID = str4

 

另外说一句,即然这几个变量声明是Long,最好在变量名上有所体现,再用str...就有点不合适了.



rongch 发表于:2010-04-08 17:07:58
明白了!谢谢!

麥田 发表于:2010-04-10 12:22:52
好长啊

总记录:3篇  页次:1/1 9 1 :