VB程序,用Mid提取问题

VB format问题
VB format问题
Private Sub Command1_Click()
b1 = Text2.Text
Text2.Text = Mid(Text1.Text, 7, 8)
Format(b1,&YYYY年MM月DD日&)
End Sub

怎么他给我说语法错误??怎么改
这个任务就是把text2.text的身份证号 提出8位生日,如 ,再转换成日这种格式。
我那里错了????
你的代码有点问题。身份证号究竟是在Text1还是在Text2中?如果是在Text1中,那b1 = Text2.Text和Text2.Text = Mid(Text1.Text, 7, 8)这2行代码的顺序要反过来才对。如果是在Text2中,那Text2.Text = Mid(Text1.Text, 7, 8)这1行应该写成b1 = Mid(b1, 7, 8)才对。还有个问题就是你调用Format函数后并没有把它的返回值赋给任何的变量,就是说这个调用根本没有任何作用。
以上是题外话,下面是正题。因为从身份证号提取的8位生日是由连续8位数字组成的字符串,中间并没有分隔符,所以Format函数无法识别为日期,也就不能用日期格式来进行格式化。像2楼那样先添加分隔符,再调用Format函数,还不如直接写成楼上那样更直接。其实我们可以把它们当成数字进行格式化。下面是我的代码,在Text1中输入身份证号,在Text2中显示生日。
Private Sub Command1_Click()

b1 = Mid(Text1.Text, 7, 8)

Text2.Text = Format(b1, &日&)
End Sub

自由宿主后台管理系统官方网站--天智海网络
邮箱: 链接:
真不明白,你先获取text2的内容,然后在修改text2的内容有什么意义?
还有像这样的数据不是日期类型所支持的格式,所以不能用format.
你可以改为这样实现:
Private Sub Command1_Click()
b1 = Mid(Text1.Text, 7, 8)
Text2.Text = Mid(b1, 1, 4) & &年& & Mid(b1, 5, 2) & &月& & Mid(b1, 7, 2) & &日&
End Sub
其他回答 (5)
试了你的代码,会出现溢出错误;
以下代码解决了此问题:


Private Sub Command1_Click()
Dim b1 As String
b1 = Text1.Text
b1 = Mid(b1, 7, 4) & &/& & Mid(b1, 11, 2) & &/& & Mid(b1, 13, 2)
Text2.Text = Format(b1, &yyyy年mm月dd日&)
End Sub

Format(CDate(vLetValues), &yyyy年mm月dd日&) 你应该这么用户的,
主要是你的“b1”不是日期类。而是字符串
的解答;
会提示类型不正确
format()是格式化函数。楼主的程序没有输出路径。会发生溢出错误。
相关知识等待您来回答
编程领域专家VB 串口获取数据问题 在线等
[问题点数:40分]
VB 串口获取数据问题 在线等
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2013年12月 VB大版内专家分月排行榜第二2013年3月 VB大版内专家分月排行榜第二2013年1月 VB大版内专家分月排行榜第二2012年9月 VB大版内专家分月排行榜第二2012年8月 VB大版内专家分月排行榜第二2012年7月 VB大版内专家分月排行榜第二2006年7月 VB大版内专家分月排行榜第二2006年5月 VB大版内专家分月排行榜第二
2014年9月 VB大版内专家分月排行榜第三2013年7月 VB大版内专家分月排行榜第三2013年6月 VB大版内专家分月排行榜第三2013年4月 VB大版内专家分月排行榜第三2012年11月 VB大版内专家分月排行榜第三2006年6月 VB大版内专家分月排行榜第三2006年4月 VB大版内专家分月排行榜第三2002年12月 VB大版内专家分月排行榜第三2002年11月 VB大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。《身份证号中有效信息的提取──VB函数的运用》教学设计
当前位置:>>>>>>>>>>
  一、教学内容分析
  本节课是教育科学出版社普通高中课程标准实验教科书《算法与程序设计(选修)》第二章第二节的部分内容。本节内容是在学生初步了解了VB的编程环境以及VB中的数据类型、变量的使用以后,进一步向学生展示VB强大的函数功能。本案例通过身份证号中有效信息的提取为主线,让学生在分析、探究中学会函数的使用方法,并通过编写程序、调试程序、修改程序、运行程序,掌握计算机解决问题的一般过程。
  二、教学目标
知识与技能
(1)能理解函数,并选择函数解决实际问题。
(2)能理解函数嵌套的使用。
(3)能熟练编写、修改、运行程序。
过程与方法
能灵活运用函数编写程序解决实际问题
情感态度与价值观
(1)通过任务驱动,逐步深化对知识的理解,提高分析问题、解决问题的能力。
(2)通过问题的解决,提高自主学习的能力。
  三、教学重难点
  (1)重点:能合理选择函数并灵活运用函数编写程序解决实际问题。
  (2)难点:能合理选择函数、理解函数嵌套的使用。
  四、教学流程
  五、教学过程
  (一)创设情景,导入新课
  教师:同学们,老师手上拿的是什么?
  学生:身份证。
  教师:现在,我们一起来做一个游戏,我报一个身份证号,大家来告诉我他(她)的出生日期、性别以及年龄。
  学生:好!
  教师:老师手上拿的这个身份证号码是:082134,请问他(他)的出生日期、性别和年龄。
  学生:他是男生,出生年月是1994年08月08日,今年16岁。
  教师:很好,大家怎么判断的呢?
  学生:身份证号中一些特定数字,表示了特殊含义,第7~14位表示出生日期,倒数第二位数字表示性别,如果是奇数代表男性,如果是偶数则代表女性。年龄我们可以用2010减去他的出生年份1994,所以他今年16岁。
  教师:这位同学回答得很好,我们每一个人都有一个唯一的身份证号,并且身份证号的各位数字都有其特定的含义,下面跟我一起总结一下其中的规律(如图1)。
  教师:上面我们了解了身份证号中数字的奥秘。如果让我们帮忙设计一个VB程序,当我们任意输入一个身份证号,就在屏幕上显示他(她)的省份代码、出生日期、年龄、性别等信息,我们该怎么做呢?
  设计意图:以小游戏的形式设问,能够快速吸引学生的注意,引起学生的兴趣,以学生已有知识作为背景,减少学生对程序设计的畏难情绪,为后面任务的开展打下良好的基础。
  (二)师生探究,构建新知
  1.任务一:提取身份证号(082134)中的省份信息(师生共同分析)。
  教师:同学们,我们刚才总结过,1~2位表示省份,我们需要提取082134中的42即可。我们该怎么提出这一串数字中1~2两位呢?VB提供了很多函数,现在请大家把课本翻到书第31面,阅读课本中的表2-9,请大家根据需要,选择一个合适的函数,并说说你是怎么选择的?
  学生:可以使用Left函数,Left(“082134”,2)的结果就是42。因为我们需要提取身份证号最左边的两位,根据Left函数功能描述:“截取字符串左边的部分”,所以选择Left函数。
  教师:很好,我们可以根据函数的功能选择函数,选择函数后,我们需要正确使用函数的参数,这样才能达到我们的目的。
  教师:通过打开提前准备好的VB程序,通过大屏幕向学生展示,如图2。
  然后运行该程序,点击确定按钮,如图3。
  教师:为什么老师点击确定按钮以后程序没有任何反应呢?
  学生:老师没有将结果输出。
  教师:对,程序中没有用输出语句。那应该用什么语句呢?
  学生:print语句。
  教师:修改程序代码,再次运行。
  Private Sub Command1_Click()
  Dim province As String
  province = Left("082134", 2)
  Print province
  End Sub
  程序在屏幕左上角显示了42,看来我们达到了目的,但是,显示不够美观,我们能不能显示为“省份代码:42”呢?请大家打开老师发给大家的VB程序代码,将其中的print province 语句改为: print "省份代码" , province (和print "省份代码" ; province)分别看看程序运行结果。
  学生:在VB编辑环境中修改程序代码,并运行。
  设计意图:通过师生共同分析,学生自主学习课本中的表2-9中函数的功能,正确选择出解决实际问题的函数。教师通过演示程序代码,降低了学生直接编写代码的难度。通过展示程序,在师生共同努力下完成任务一,任务一涉及到了Left函数的使用,通过师生共同探索,学生在首次面对本节课的教学重点与难点时没有感到很大的困难,轻松地构建了学生解决问题所需的新知识。
  任务一是师生共同完成的,仅初步学会了函数的使用方法,还需要学生独立练习,以便学生熟练地运用函数,所以需要进一步设置任务。
  (三)任务驱动,自主探究
  1.任务二:提取身份证号(082134)中的出生日期
  教师:刚才我们大家都尝试了提取身份证号中的省份代码信息,现在,两个人一组,尝试修改代码,当我们点击确定按钮时输出如下结果(如图4)。
  教师:请大家在修改代码的过程中注意以下几个问题:
  ①是否需要新增变量,如果需要该如何定义?
  ②选用什么函数能满足我们程序的需要?
  ③如何让提取的信息分两行显示在屏幕上?
  同组学生相互讨论,在VB中修改代码,调试并运行。
  教师下去辅导学生,注意观察学生存在的问题。
  教师:很多同学完成了自己的作品,现在我请同学展示自己的作品。教师切换到学生机屏幕,让学生展示自己的作品(根据教师的观察,特意选择正确和有问题的学生作品进行展示)。
(作品一)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& (作品二)
  教师:看来,大家选用的函数很正确,都选用了什么函数?
  学生:Mid函数。
  教师:但是,为什么两个同学程序运行的结果有差别呢?展示两位学生的程序代码。
  学生对比两位同学的程序代码,发现其中的奥妙。
  教师:差别就在于print语句使用不同,请大家自己总结。
  设计意图:任务二是任务一的延伸。设置的目的是巩固函数的选择和使用的方法,在此基础上,培养学生观察问题、分析问题和解决问题的能力。在任务二的基础上,设置任务三,进一步提高对学生的要求,让学生不仅能熟练编写代码而且能灵活运用函数。
  2.任务三:请大家在刚才程序的基础上,当我们点击确定按钮时,弹出一个输入身份证号的对话框,输入完成,点击确定以后,显示省份编号、出生日期、年龄和性别。
  教师提示完成这个任务的关键:如何弹出一个对话框来获取身份证号码?如何解决年龄的计算?提示学生在做的过程中思考以下几个问题。
  ①弹出一个对话框获取身份证号,我们该选用什么函数?
  ②在计算年龄的时,我们应该选用什么函数?
  ③在计算时,数据类型是否一致?如果不一致时是否需要转换?如何转换?
  ④函数在使用过程中能否嵌套,该如何使用?
  学生相互讨论,修改程序代码,测试并运行程序。
  教师通过多媒体电子教师软件,展示学生作品,让学生讨论作品的优点与缺点。
  师生共同总结InputBox函数和日期函数的嵌套使用法。
  设计意图:通过前面任务一和任务二的探讨、学习,让学生在函数的使用中领悟函数的嵌套使用,在这个过程中有些函数老师是没有具体讲解的,但是通过任务一和任务二,帮助学生提高举一反三的的能力,也就达到灵活运用函数解决实际问题的目的。
  (四)交流总结,拓展延伸
  1.总结
  教师:本节课,我们通过三个任务,完成了在创设情景中提出的问题。大家不仅学会了函数的使用,更重要的是我们熟悉了用计算机解决实际问题的一般过程:
  2.拓展延伸
  教师:在本程序例子的基础上,我们能否在程序界面上进一步美化,设计出更好的程序呢?屏幕演示图5。
  教师:另外,老师给同学们一道课后思考题,大家可以下去完成。
  3.自我评价
自我评价表
班级&&&&&&&&& &姓名&&&&&&&&&& &学号&&&&&&&&&& &成绩&&&&&&&&&&
任务完成情况
(每个任务20分)
(每项10分)
踊跃回答问题
组内互帮互助
创造性设计
  4.课后练习
  湖北省招办为每位参加高考的学生发放了一个高考报名号,该号码由14位数字组成,如:67。你能编写出一个程序来提取高考报名号中的信息吗?
  高考报名号中各位数字所表示的意义:
  (1)前1、2位数字表示:参加高考的年份;
  (2)第3、4位数字表示:考生所在省份的代码;
  (3)第5、6位数字表示:考生所在城市的代码;
  (4)第7、8位数字表示:考生所在区县的代码;
  (5)第9、10位数字表示考生报考科类:11为文史,13为艺文,14为体文,15为理工,17为艺理,18为体理。
  (6)第11-14位数字为表示考生编号。
  设计意图:通过回顾任务解决过程,帮助学生建立用计算机解决实际问题的基本思想,让他们了解程序设计的过程和方法,以达到对程序设计较为全面的认识。
  六、教学反思
  VB中基本函数的使用这一教学内容,在教学中起到承上起下的作用。如何根据学生已有的知识和技能,既体现高中信息技术教学的目标,又满足适合高中学生思维和能力发展的需要,是设计本课中需要重点思考和突破的地方。
  在本节课的最初设计中,我并没有设计逐步深入的三个任务,而是采用“原始设计.ppt”中的教学流程,在老师讲授完基础知识以后,然后把大部分时间给学生自主探究,从整个教学过程来看,由于学生基础有限,能够完成整个任务的学生很少,效果不佳。在此基础上,在另外一个班上课的时候,我修改了原来的教学设计,将原来的整个任务进行了细化,分成了三个小的任务,任务之间是逐步深入的,从教学效果来看,这种由易到难的设计,让学生更容易接受,通过一节课的学习,大部分学生能完成任务。通过两节课的比较,个人认为学生自主学习、自主探究不能完全放开,依然需要在学生自主学习的过程中加入适时的引导,这样能够提高课堂效率。
  但是,本节课这样的设计也有让我困惑的地方:教师对整个任务进行了分解,学生能否在自己面对实际问题的时候,也会自己去分析问题,解决问题呢?换句话说,老师在教学过程中,把教学内容嚼得过细,是否会让学生过多的受到教师思维定势的影响?是否会影响到学生创新能力的培养?
  所以,在以后的教学过程中,需要不断摸索,找到学生探究与教师讲授之间最佳的结合点。
【上一篇】
【下一篇】VB高级编程100例_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
喜欢此文档的还喜欢
VB高级编程100例
V​B​高​级​编​程0例
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢很简单的一个问题,用excel中的vb提取一个txt文本中一段字符。_百度知道
很简单的一个问题,用excel中的vb提取一个txt文本中一段字符。
比如在文本中提取“1 %” 中间有个空格。提取到excel单元格中只显示“1%” 。就是不提取中间的空格。
也是在%号前面有个空格? 比如“1恩.44 %”,所提取的是变量怎么做。是一样的吗
提问者采纳
i;1 %& str=& for i=1 to len(s) str=str+trim(mid(s;&quots=&quot
提问者评价
其他类似问题
您可能关注的推广
excel的相关知识
其他1条回答
中间转换一下用trim()
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 vb 中mid函数 的文章

 

随机推荐