标题: 变量赋值,大家来帮看一下问题在哪,谢谢 [打印本页] 作者: huang1314 时间: 2012-10-2 10:22 标题: 变量赋值,大家来帮看一下问题在哪,谢谢 dim i as long
Private Sub Command21_Click() '添加记录
i = 0
If Len(Me.Text5) > 0 Then
'有输入
i = i + 1
End If
If Len(Me.text6) > 0 Then
'有输入
i = i + 1
End If
If Len(Me.text7) > 0 Then
'有输入
i = i + 1
End If
If i = 0 Then
MsgBox "输入为空"
Exit Sub
End If
DoCmd.RunSQL "INSERT INTO 表1 (姓名,工种,规格,数量) VALUES ([text1],[text2],[text3],[text4]/i”
end sub
我想判断[text5],[text6],[text7]是否有输入来赋i的值+1,最多是三个都有输入时i=3,运行时停在插入记录那行,提示输入i的值,应该是i赋值不成功,
不过能过
If i = 0 Then
MsgBox "输入为空"
Exit Sub
End If
这段,搞不明白啊作者: 风中漫步 时间: 2012-10-2 11:05
你的SQL有问题
空格也算吗?个人感觉这样要好些,
If TRIM(Me.Text5)<>"" Then
'有输入
i = i + 1
End If作者: lynnwang 时间: 2012-10-2 18:12
TRIM$ 好于 TRIM
value 返回的是 VARAINT 型,文本框是不会返回空格的,这里value返回 null,在IF THEN 中如果返回NULL,则会跳过
len和lenb在VB所以操作字符串中的函数是最好的,如果len的性能时间为1,那么TRIM$的性能时间在18,甚至更高
作者: lynnwang 时间: 2012-10-2 18:17
判定文本框是否输入,下面代码性能更好,另外利用位判定,可以确定哪些文本框有输入值?
If Len(Me.Text5) Then i = &H1 '有输入
If Len(Me.Text6) Then i = &H10 '有输入
If Len(Me.Text7) Then i = &H100 '有输入
或 If isnull(Me.Text7) Then i = &H100 '有输入作者: lynnwang 时间: 2012-10-2 18:24
帮你改了,
Private Sub Command21_Click() '添加记录
Dim strSQLVal As String, i As Long
If Len(Me.Text5) Then strSQLVal = "[text1],"
If Len(Me.Text6) Then strSQLVal = strSQLVal & "[text2],"
If Len(Me.Text7) Then strSQLVal = strSQLVal & "[text3]"
If Len(strSQLVal) Then
DoCmd.RunSQL "INSERT INTO 表1 (姓名,工种,规格,数量) VALUES (" & strSQLVal & ",[text4]/i)"
Else
MsgBox "输入为空"
End If
End Sub作者: lynnwang 时间: 2012-10-2 18:25
或 If isnull(Me.Text7) Then i = &H100 少了一个NOT
或 If not isnull(Me.Text7) Then i = &H100 作者: todaynew 时间: 2012-10-2 19:51 本帖最后由 todaynew 于 2012-10-5 08:50 编辑
此类问题皆可利用逻辑值的特性进行计算:
Private Sub Command21_Click()
dim i as long
i=val(me.text5.value)>0+val(me.text6.value)>0+val(me.text7.value)>0 '每个逻辑表达式为真则为-1,为否则为0
i=-i
if i=0 then exit sub
DoCmd.RunSQL "INSERT INTO 表1 (姓名,工种,规格,数量) VALUES (" & me.text1.value & "," & me.text2.value & "," & me.text3.value & "," & me.text4.value/i & ")"
end sub作者: layaman_999 时间: 2012-10-3 10:51
你的insert into的SQL写错鸟:应该是这样吧
DoCmd.RunSQL "INSERT INTO 表1 (姓名,工种,规格,数量) VALUES (“ & [text1] & ”, " & [text2]& ”, " & [text3] & ”, " & [text4]/i & ")"