注册 登录
编程论坛 VB6论坛

VB窗体Text1中一串16位数字作加法输入到Access表中去?求教

豆豆17373 发布于 2012-11-04 09:06, 1699 次点击
VB窗体Text1中一串16位数字:规则是B120B39121000000 前十位B120B39121(前10位是固定的)不作加法,后6位(最高到99万)加法。当窗体Text2中输入20,按运行按钮则Access 表1中,出现 目的:后6位数+20

ID列:
B120B39121000001
B120B39121000002
B120B39121000003
B120B39121000004
B120B39121000005
B120B39121000006
B120B39121000007
B120B39121000008
B120B39121000009
B120B39121000010
B120B39121000011
……
B120B39121000020

--------------------
最后能否从表1中 ID 列查询出最大的数 即本题中的 B120B39121000020(按后6位数即可,前10位是固定的)
输出到窗体Text1中,再在Text2中输入80则 最终还是保持一串16位数
B120B39121000021
B120B39121000022
B120B39121000023
B120B39121000024
B120B39121000025
……
……
B120B39121000089
B120B39121000090
……
B120B39121000098
B120B39121000099
B120B39121000100

[ 本帖最后由 豆豆17373 于 2012-11-4 11:03 编辑 ]
10 回复
#2
风吹过b2012-11-04 10:50
select max(ID) as MAXID from 表

查询最大值,使用 MAX 函数查询。
你试试吧,很久没用 数据库了,不太记得了。
#3
豆豆173732012-11-04 10:52
导入到Access我会做,现在主要问题是万位数加法判断,开始6位“000000”(零)
#4
豆豆173732012-11-04 10:56
以下是引用风吹过b在2012-11-4 10:50:59的发言:

select max(ID) as MAXID from 表

查询最大值,使用 MAX 函数查询。
你试试吧,很久没用 数据库了,不太记得了。


嗯。查询最大值,使用 MAX 函数查询。明白了,我会了。
就是这个加法不太会
#5
风吹过b2012-11-04 11:17
生成 前导 0 ,有二种方式:
1、使用 format 函数。  
  msgbox format(值,"000000")
  注意:format 返回值已经是一个 字符串了,不得再作四则运算,如加法。字符串连接时,使用 & 运算符,防止出错。

2、自定义一个函数。
  取数字的长度,然后再到前面补0 ,生成一个字符串。
  msgbox left("000000",6-len(值)) & 值
#6
bczgvip2012-11-04 13:07
呃,还是不知道楼主要干什么。
#7
Artless2012-11-04 14:27
text1=B120B39121000000,text2=20
dd=left(text1.text,9) & str(val(right(text1.text,7))+20)

[ 本帖最后由 Artless 于 2012-11-4 14:29 编辑 ]
#8
豆豆173732012-11-04 16:22
以下是引用Artless在2012-11-4 14:27:46的发言:

text1=B120B39121000000,text2=20
dd=left(text1.text,9) & str(val(right(text1.text,7))+20)





right函数,好像遇到“0”取不到,如果text1=B120B39120000000,右边起第7号是”0“话,left(text1.text,8) & str(val(right(text1.text,8))+20)

left(text1.text,9) & str(val(right(text1.text,7))+20) 显示出来话有空格吖!老师怎么去空格。

[ 本帖最后由 豆豆17373 于 2012-11-4 16:23 编辑 ]
#9
豆豆173732012-11-04 16:40
以下是引用豆豆17373在2012-11-4 16:22:10的发言:






right函数,好像遇到“0”取不到,如果text1=B120B39120000000,右边起第7号是”0“话,left(text1.text,8) & str(val(right(text1.text,8))+20)

left(text1.text,9) & str(val(right(text1.text,7))+20) 显示出来话有空格吖!老师怎么去空格。


学以致用,字符串与字符串相边,解决空格问题……

For i = 1 To Text2.Text '输入多少数字不明,故作循环

  MsgBox Left(Text1.Text, 10) & Format(Str(Val(Right(Text1.Text, 8)) + i), "000000") '用MsgBox 作循环每加一次显示结果值,回车下个循环
 
Next i

[ 本帖最后由 豆豆17373 于 2012-11-4 17:00 编辑 ]
#10
风吹过b2012-11-04 18:33
程序代码:
Dim i As Long
'用变量代替每次的函数调用
Dim j As String
Dim k As Long

If IsNumeric(Text2.Text) Then       '输入的是数字
    j = Left(Text1.Text, 10)            '取前10位
    k = Val(Right(Text1.Text, 6))       '这里6要与下面format 中的0的数目相同
    For i = 1 To Text2.Text '输入多少数字不明,故作循环
      MsgBox j & Format(k + i, "000000")       '用MsgBox 作循环每加一次显示结果值,回车下个循环
    Next i
End If
#11
wp2319572012-11-05 08:05
好久不用VB了 嘿嘿
1