VBA /VB/VB中合成分散数据方法
公司用于项目号的合成,怕忘记,特此放上这里。若能帮助其它道友,善莫大焉。
比如:001,004,006,007,008,009,010
结果可以输出:001,004,006-010
逻辑:
1、获得数据(一般从表中提取)
2、定义数组,并赋值。(数组大小根据表中数据个数判断)
3、排序(这里用冒泡法,小到大)
4、综合判断数据(核心判断:从步距来判断是否连接和使用哪种符号相连,前后相距1,那么用“-”,前相距非1,用“,”)
5、根据想要的格式进行输出
Function Br_合成项目号()
Dim rst As New ADODB.Recordset
rst.CursorLocation = adUseClient
Dim Dst As New ADODB.Recordset
Dst.CursorLocation = adUseClient
Dst.Open "SELECT * From tb1;", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Dst.MoveFirst
Do Until Dst.EOF
rst.Open "SELECT * From tb1 where [项目号]='" & Dst.Fields("项目号") & "';", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Dim Br_arry
ReDim Br_arry(rst.RecordCount)
rst.MoveFirst
'数组初始化
Do Until rst.EOF
Br_arry(rst.AbsolutePosition) = Right(rst.Fields("梯号"), )
rst.MoveNext
Loop
'排序,综合==================================================
'冒泡排序,注意要用数字类型
For I = To rst.RecordCount -
For K = I + To rst.RecordCount
If CInt(Br_arry(I)) > CInt(Br_arry(K)) Then
Dim Str001%
Str001 = Br_arry(K)
Br_arry(K) = Br_arry(I)
Br_arry(I) = Str001
End If
Next K
Next I
'根据想要的格式进行追加设置
Dim Br_Pjt001$
'第一个数组,注意类型转换
Br_Pjt001 = CStr(Format(CInt(Br_arry()), ""))
'判断是否连续
If CInt(Br_arry(rst.RecordCount)) - CInt(Br_arry()) + = rst.RecordCount Then '满足条件为连续数字
Br_Pjt001 = Format(CInt(Br_arry()), "") & "-" & Format(CInt(Br_arry(rst.RecordCount)), "")
Else
For I = To rst.RecordCount -
If Br_arry(I + ) - Br_arry(I) = Then '数字连续段 与后面相距1个单位
If I = Then
Else
If Len(Br_Pjt001) > Then '长度超过4才进行处理,一开始情况
If Br_arry(I) - Br_arry(I - ) = Then '前后都相距1个单位,才进行裁剪
Br_Pjt001 = Mid(Br_Pjt001, , Len(Br_Pjt001) - )
End If
End If
Br_Pjt001 = Br_Pjt001 & "-" & Format(Br_arry(I + ), "")
End If
Else
Br_Pjt001 = Br_Pjt001 & "," & Format(Br_arry(I + ), "")
End If
Next I
End If
'排序,综合==================================================
Debug.Print Dst.Fields("项目号") & "." & Br_Pjt001
Dst.Fields("EEE") = Dst.Fields("项目号") & "." & Br_Pjt001
rst.Close
Dst.MoveNext
Loop
End Function
VBA /VB/VB中合成分散数据方法的更多相关文章
- [转]VB.net中 excel 的range方法
本文转自:https://blog.csdn.net/bigheadsheep/article/details/7711235 第五章 Range对象基本操作应用示例(1)Range对象可能是VBA代 ...
- VB.NET中使用代表对方法异步调用
按照我们常规的思维方式,计算机应该是干完一件事,然后再干下一件.用术语来说,这种执行任务的方式叫做同步执行(Synchronous Execution).既然这样,那么为什么要引入异步执行的概念呢? ...
- c#.net与vb.net中读写Cookie的方法!
Cookie (HttpCookie的实例)提供了一种在 Web 应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用 Cookie 存储用户首选项或其他信息.当该用户再次访问您的 ...
- 教你几种在SQLServer中删除重复数据方法(转)
转载地址:http://www.jb51.net/article/22980.htm 方法一 复制代码 代码如下: declare @max integer,@id integer declare c ...
- JAVA中读取xls数据方法介绍
用例编号(UI-0001) 用例名称({验证页面跳转|验证元素文本}-简要明确表述) 验证类型 是否执行 初始URL 初始元素xpath 目标元素xpath 目标元素属性 期望结果 UI-0001 验 ...
- 随机获得MySQL数据库中100条数据方法 驾照题库项目 MVC架构 biz业务层的实现类 根据考试类型rand或order通过dao数据访问层接口得到数据库中100或全部数据
package com.swift.jztk.biz; import java.util.Collections; import java.util.Comparator; import java.u ...
- mysql互换表中两列数据方法
1.创建表及记录用于测试 ) unsigned ) ,) unsigned ,) unsigned NOT NULL COMMENT '现价', PRIMARY KEY (`id`) ) ENGINE ...
- VB.NET中DataGridView控件
VB.NET中对于表格数据的显示经常使用到DataGridView控件,其以丰富多样的数据表呈现形式被程序猿喜爱. 本人在做一个小系统中运用DataGridView控件的部分属性,这些功能的使用在使用 ...
- VB.NET中使用Linq TO SQL添加数据后获得自增长列ID
VB.NET中使用Linq TO SQL添加数据后获得自增长列ID: Dim tempOrdre As New Order With { .CustomerID = cmbCustomerName.S ...
随机推荐
- node.js 89行爬虫爬取智联招聘信息
写在前面的话, .......写个P,直接上效果图.附上源码地址 github/lonhon ok,正文开始,先列出用到的和require的东西: node.js,这个是必须的 request,然发 ...
- 慕课网视频破解付费分享-前端开发-Python等
微信小程序 慕课网 BAT大牛经验总结全面深入解读Android面试 前端JS基础面试技巧 vue2.0+node.js+mongodb全栈打造商城 Vue.js高级实战-开发移动端音 ...
- Angular+ionic2 web端 启动程序出现短暂 白屏或黑屏 的处理小妙招
在ionic2项目启动是会出现短暂的白屏或者黑屏,虽然很短,但是用户体验不太好.上网查了相关的资料,都是针对打包APP的解决办法,针对浏览器端使用的项目没有效果,所以自己写了样式,巧妙的避开这个问题, ...
- PHP初入,基础知识点分享(a标签&表格的嵌套&文字的处理)
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...
- [转载]dreamweaver代码提示失效
原文地址:dreamweaver代码提示失效作者:云中雁 2007-03-23 12:19:22| 分类: 编程手记 | 标签:web2.0 javascript |字号大中小 订阅 吴庆民 ...
- springmvc注解
简介: handler method 参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类:(主要讲解常用类型) A.处理requet uri 部分(这里指uri templat ...
- WEB跨域资源共享:Cross-origin Resource Sharing(CORS)
跨域资源共享(CORS):浏览器同源策略中的同源指协议+域名+端口三者完全一致,其中任何一个不同即为跨域 1. 浏览器同源政策是隔离潜在恶意文件的安全机制,限制信息传递和使用的边界,不是信息的保密机制 ...
- Tomca软件介绍和安装
Web开发入门 软件的结构: C/S (Client - Server 客户端-服务器端) 典型应用:QQ软件 ,飞秋,红蜘蛛. 特点: 1)必须下载特定的客户端程序. 2)服务器端升级,客户端升级 ...
- 团队作业4——第一次项目冲刺(Alpha版本) 3
一.Daily Scrum Meeting照片 二.燃尽图 注:由于前两天燃尽图制作不准确,所以重新制作一个,现已由工作量改为功能数,工作日从今天开始. 三.项目进展 功能: 算法这一块已全部完成 文 ...
- 微信小程序xml解析
准备: 下载xmldom库:https://github.com/jindw/xmldom 将dom.js.dom-parser.js.sax.js,entities.js拷贝微信小程序需要的文件夹下 ...