Office中国论坛/Access中国论坛

标题: Access编程,离我还好远!各位走过路过,请支招! [打印本页]

作者: licho    时间: 2011-11-18 11:11
标题: Access编程,离我还好远!各位走过路过,请支招!
本帖最后由 licho 于 2013-12-11 10:42 编辑

这前在这论坛上学习了很多,也得到许多板主的帮助,现将完整的数据库放上来给大家交流,多多指教{:soso_e100:}





***************************************************


在编一个数据库,却遇到好多问题,最大的还是编程!(有点笑死人,代码也不会写,也学人建数据库{:soso_e120:} )

下面是我工作时用到的一个图纸号申请表,现在想把它"数据库"化.请有热心的朋友指点一下如何编以下代码:
为能说明容易,本人把窗体截图贴上来:
[attach]47386[/attach]

[attach]47385[/attach]

它的运行机制是:窗体上面要指定的数据会与一个数据表关联,查询表对这数据表进行选择查询操作,窗体下面的表数据是由查询表提供!

设置变量a来获取[部位代号]的值,其值为a1,a2,a3,a4,a5,a的值为大写;
设置变量b来获取[用途代号]的值;
设置变量c来获取[流水号]的值;
[流水号]是一个5位数的数字,c要判断a是哪一个值,再提取(a1/a2/a3/a4/a5)时之前c的值,然后在原c值加1(即c=c+1){换句话说流水号有5种,共用一个变量c}

[图纸名称,图纸编号]是标签,其caption=[名称].text&"的图纸编号是""a"&"b"&" - ""c"
{如出来的效果:1C 放电加工用夹具 的图纸编号是:Y02-00001}

当完成输入后,按下[生成图号]按钮,可将图纸编号等数据传到下面的查询表中.
告诉我面向哪个对象在哪个事件下编代码!
作者: todaynew    时间: 2011-11-18 15:23
本帖最后由 todaynew 于 2011-11-18 15:42 编辑

不必什么代码,在默认值中应该就能处理。

在流水号的默认值属性中写:

"'" &  format(Right(nz(Dmax("图纸编号","图纸申请记录表","图纸编号 Like '" & [部位代号] & [用途代号] & "*'"),[部位代号] & [用途代号] & "00000"),5)+1,"00000") & "'"

如果不设默认值值,也可在按钮事件中写:

dim str as string
str=Dmax("图纸编号","图纸申请记录表","图纸编号 Like '" & [部位代号] & [用途代号] & "*'")  '取当前编号最大值
str=nz(str,[部位代号] & [用途代号] & "00000")    '如果为空值,取流水号为00000
str=Right(str,5)+1          '最大流水号递增1
str=format(str,"00000")     '格式化流水号
me.流水号.value=str
作者: roych    时间: 2011-11-18 23:37
其实,编程可以慢慢学的。主要还是查询和表,部分功能可以通过宏来处理。
作者: licho    时间: 2011-11-21 09:20
{:soso__5926881316972547436_4:}渐渐发觉版主们都好热心
作者: licho    时间: 2011-11-21 10:25
todaynew 发表于 2011-11-18 15:23
不必什么代码,在默认值中应该就能处理。

在流水号的默认值属性中写:

引用 "str=Right(str,5)+1          '最大流水号递增1"

当Right(str,5)为9时,str 能自动进位吗?????
其它的函数我不是好熟悉,要看帮助才知有无问题!
作者: licho    时间: 2011-11-29 11:58
前些天在忙,无时间去研究,到现在我的问题还没有解决!
二楼的todaynew 代码我仔细研究了一翻({:soso_e181:}),如果在流水号的默认值属性中写表达式,我个人认为可能无法实现------不能及时对窗体上的数据进行更新,而后面还要将这些数据保存到表中,所以不好;另外的那段代码是用不了的,可以还没有理解我的意图:
[生成图号]这一按钮只会在窗体上的数据选好并输入好后将数据保存到表中.
在窗体上的数据变更时相关数据如[流水号]都会即时更新显示.
所以我认为在[部位代号]的afterupdate事件中写代码会实现这功能({:soso_e109:}我不会写...).
作者: licho    时间: 2011-11-29 12:12
有人能告诉我在Access中能不能实现窗体上的数据与数据表中的数据可实时关联?
我想实现:窗体输入的数据经代码运算(如字条串合并)后,在通过命令按钮触发事件来保存数据?
              窗体数据变更时可以访问数据表中的数据来生成一数据(这时指流水号),这样我就不用午间特意建一个查询表来作数据中转!
作者: licho    时间: 2012-2-17 22:42
本帖最后由 licho 于 2012-2-17 22:43 编辑

todaynew 的代码格式有点不对{:soso_e183:}
str=Dmax("图纸编号","图纸申请记录表","图纸编号 Like '" & [部位代号] & [用途代号] & "*'")  '取当前编号最大值

正确的是
DMax("[图纸编号]", "图号申请记录", "[图纸编号] Like ..........'取当前编号最大值
但也不能用,因为
图纸编号 Like '" & [部位代号] & [用途代号] & "*'")  
为空值时,Dmax会出问题!
另上面代码单双引号混乱了.
作者: yanghua1900363    时间: 2012-2-18 10:34
licho 发表于 2012-2-17 22:42
todaynew 的代码格式有点不对

正确的是

建议传个实例上来大家好理解你的意图,那样要比你说10句话还明确,也好大家帮你解决问题

作者: JosephTan    时间: 2012-2-18 15:54
licho 发表于 2011-11-29 15:12
有人能告诉我在Access中能不能实现窗体上的数据与数据表中的数据可实时关联?
我想实现:窗体输入的数据经代 ...

可以啊比如说我的数据库里面当我点击一个组合框的时候,就可以通过一个模块从数据库里面取出最新的一条记录,然后通过计算后产生一个流水的条形码然后再把这个条码加入到新记录里。这个模块当时也是todaynew老头帮我弄的。你找他帮你也弄一个。
作者: ycxchen    时间: 2012-2-19 09:27
licho 发表于 2011-11-29 12:12
有人能告诉我在Access中能不能实现窗体上的数据与数据表中的数据可实时关联?
我想实现:窗体输入的数据经代 ...

数据与数据表中的数据可实时关联?将窗体数据源设为表或查询即可以了。
作者: licho    时间: 2012-2-21 20:43
今天回来,哈哈,有这么多热心的"元老"好高兴!这几天正忙着其它事,迟下我把我的东西放上来,让大家改进!
作者: licho    时间: 2012-2-29 12:09
答应了就要兑现,将这个拖了好久的小东西放上来,让热心的朋友们帮我搞一下:只有<流水号>和<图号申请>代码没完成,当然,要我觉得用于显示申请信息的代码可放到一个模块里,不用重复写代码....不过我功力不够{:soso_e203:}
作者: JosephTan    时间: 2012-2-29 13:37
licho 发表于 2012-2-29 15:09
答应了就要兑现,将这个拖了好久的小东西放上来,让热心的朋友们帮我搞一下:只有和代码没完成,当然,要我觉得用 ...

[attach]48520[/attach]
弄成模块了,只用了一个的调用,其余的就举一反三吧。
作者: JosephTan    时间: 2012-2-29 18:58
本帖最后由 JosephTan 于 2012-2-29 22:00 编辑

把你的按钮也做了,不知是不是这个意思?
[attach]48522[/attach]
作者: licho    时间: 2012-3-8 13:06
呵呵,还要钱?先看一下!
作者: licho    时间: 2012-3-8 13:17
JosephTan 还是可以,你的思路可以拿来参考!
但考虑不全,例如当什么都不输入时按按钮会出错!
作者: JosephTan    时间: 2012-3-10 06:54
本帖最后由 JosephTan 于 2012-3-10 10:15 编辑
licho 发表于 2012-3-8 16:17
JosephTan 还是可以,你的思路可以拿来参考!
但考虑不全,例如当什么都不输入时按按钮会出错!


对的,没有考虑全,你自己去把她弄好吧。毕竟是你在用。
想起一个帖子供你参考:打开链接




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3