ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3110|回复: 12

[求助] 求助大神帮忙看一下我的户籍系统

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-9-22 19:59 | 显示全部楼层 |阅读模式
改了一个户籍系统,遇到些问题不会弄,求大家指教一下:如图:



1,此表格为查询页面,代码如下, 我想在此页代码中插入一个修改功能(如图片右侧按钮),比如查询出某人资料后,可任意修改某单元格内内容,点击修改后自动覆盖更新到数据库相关单元格,求大神帮忙写下代码。
代码如下:

  1. Sub 按身份证号查询()
  2. Application.ScreenUpdating = False

  3.     Dim i, X, flag
  4.     X = 3
  5.     Do While Not (IsEmpty(Sheets("数据表").Cells(X, 3).Value))
  6.         X = X + 1
  7.     Loop

  8.     flag = 0
  9.     For i = 1 To X
  10.         If Sheets("管理查询").Cells(5, 2) = Sheets("数据表").Cells(i, 6) Then
  11.             flag = 9
  12.             Exit For
  13.         End If
  14.     Next

  15.     If flag = 9 Then
  16.         X = i
  17.     End If

  18.     If Sheets("管理查询").Cells(5, 2) = "" Then
  19.        Sheets("管理查询").Cells(2, 14) = "空白表不能调用"
  20.     Else
  21.         '   Sheets("管理查询").Cells(2, 2) = Sheets("数据表").Cells(x, 1)    '户别
  22.             Sheets("管理查询").Cells(2, 5) = Sheets("数据表").Cells(X, 2)    '户号
  23.             Sheets("管理查询").Cells(3, 2) = Sheets("数据表").Cells(X, 3)    '姓名
  24.             Sheets("管理查询").Cells(3, 4) = Sheets("数据表").Cells(X, 4)    '性别
  25.             Sheets("管理查询").Cells(3, 8) = Sheets("数据表").Cells(X, 9)    '政治面貌
  26.             Sheets("管理查询").Cells(2, 10) = Sheets("数据表").Cells(X, 10)    '户主或与户主关系
  27.             Sheets("管理查询").Cells(8, 2) = Sheets("数据表").Cells(X, 11)    '联系电话
  28.             Sheets("管理查询").Cells(6, 2) = Sheets("数据表").Cells(X, 7)   '身份证地址
  29.             Sheets("管理查询").Cells(7, 2) = Sheets("数据表").Cells(X, 8)    '现住址
  30.             Sheets("管理查询").Cells(3, 6) = Sheets("数据表").Cells(X, 12)   '民族
  31.             Sheets("管理查询").Cells(4, 2) = Sheets("数据表").Cells(X, 5)   '出生年月
  32.             Sheets("管理查询").Cells(4, 5) = Sheets("数据表").Cells(X, 13)   '文化程度
  33.             Sheets("管理查询").Cells(5, 8) = Sheets("数据表").Cells(X, 16)   '兵役状况
  34.             Sheets("管理查询").Cells(5, 5) = Sheets("数据表").Cells(X, 17)   '年龄
  35.             Sheets("管理查询").Cells(6, 8) = Sheets("数据表").Cells(X, 14)   '婚姻状况
  36.             Sheets("管理查询").Cells(4, 8) = Sheets("数据表").Cells(X, 15)   '籍贯
  37.             Sheets("管理查询").Cells(5, 2) = Sheets("数据表").Cells(X, 6)   '身份证号
  38.             Sheets("管理查询").Cells(9, 2) = Sheets("数据表").Cells(X, 21)   '何时由何地迁来本市(县)
  39.             Sheets("管理查询").Cells(8, 5) = Sheets("数据表").Cells(X, 18)   '身高
  40.             Sheets("管理查询").Cells(8, 8) = Sheets("数据表").Cells(X, 19)   '血型
  41.             Sheets("管理查询").Cells(7, 8) = Sheets("数据表").Cells(X, 20)   '曾用名
  42.             Sheets("管理查询").Cells(10, 2) = Sheets("数据表").Cells(X, 22)  '何时由何地迁来本地址
  43.             Sheets("管理查询").Cells(12, 2) = Sheets("数据表").Cells(X, 23)  '关系1
  44.             Sheets("管理查询").Cells(12, 4) = Sheets("数据表").Cells(X, 24)  '姓名1
  45.             Sheets("管理查询").Cells(12, 6) = Sheets("数据表").Cells(X, 25)  '出生日期1
  46.             Sheets("管理查询").Cells(12, 9) = Sheets("数据表").Cells(X, 26)  '政治面貌1
  47.             Sheets("管理查询").Cells(12, 10) = Sheets("数据表").Cells(X, 27) '工作单位及职务1
  48.             Sheets("管理查询").Cells(13, 2) = Sheets("数据表").Cells(X, 28)  '关系2
  49.             Sheets("管理查询").Cells(13, 4) = Sheets("数据表").Cells(X, 29)  '名称2
  50.             Sheets("管理查询").Cells(13, 6) = Sheets("数据表").Cells(X, 30)  '出生日期2
  51.             Sheets("管理查询").Cells(13, 9) = Sheets("数据表").Cells(X, 31)  '政治面貌2
  52.             Sheets("管理查询").Cells(13, 10) = Sheets("数据表").Cells(X, 32) '工作单位及职务2
  53.             Sheets("管理查询").Cells(14, 2) = Sheets("数据表").Cells(X, 33)  '关系3
  54.             Sheets("管理查询").Cells(14, 4) = Sheets("数据表").Cells(X, 34)  '名称3
  55.             Sheets("管理查询").Cells(14, 6) = Sheets("数据表").Cells(X, 35)  '出生日期3
  56.             Sheets("管理查询").Cells(14, 9) = Sheets("数据表").Cells(X, 36) '政治面貌3
  57.             Sheets("管理查询").Cells(14, 10) = Sheets("数据表").Cells(X, 37)  '工作单位及职务3
  58.             Sheets("管理查询").Cells(15, 2) = Sheets("数据表").Cells(X, 38)  '关系4
  59.             Sheets("管理查询").Cells(15, 4) = Sheets("数据表").Cells(X, 39)  '名称4
  60.             Sheets("管理查询").Cells(15, 6) = Sheets("数据表").Cells(X, 40)  '出生日期4
  61.             Sheets("管理查询").Cells(15, 9) = Sheets("数据表").Cells(X, 41)  '政治面貌4
  62.             Sheets("管理查询").Cells(15, 10) = Sheets("数据表").Cells(X, 42) '工作单位及职务4
  63.             Sheets("管理查询").Cells(16, 2) = Sheets("数据表").Cells(X, 43) '备注
  64.             Sheets("管理查询").Cells(1, 14) = "调用成功!"
  65.     End If
  66. End Sub
复制代码

问题2请看1楼

请大神们帮帮弄一下,万分感谢



TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-22 20:05 | 显示全部楼层
本帖最后由 renxiaozhi 于 2018-9-23 12:41 编辑

2,如上图,档案录入表格和此表格一致,只不过是录入用,能否把录入、查询、修改功能在一个表格里完成?求大神帮忙写下代码
录入功能源代码如下:


Sub 录入数据()
Application.ScreenUpdating = False

    Dim i, X, flag
    X = 3
    Do While Not (IsEmpty(Sheets("数据表").Cells(X, 3).Value))
        X = X + 1
    Loop

    flag = 0
    For i = 1 To X
        If Sheets("档案录入").Cells(2, 3) = Sheets("数据表").Cells(i, 3) Then
            flag = 9
            Exit For
        End If
    Next

    If flag = 9 Then
        X = X
    End If

    If Sheets("档案录入").Cells(5, 2) = "" Then
       Sheets("档案录入").Cells(1, 13) = "空白表不能记录"
    Else
            Sheets("数据表").Cells(X, 1) = Sheets("档案录入").Cells(2, 2)    '户别
            Sheets("数据表").Cells(X, 2) = Sheets("档案录入").Cells(2, 5)    '户号
            Sheets("数据表").Cells(X, 3) = Sheets("档案录入").Cells(3, 2)    '姓名
            Sheets("数据表").Cells(X, 9) = Sheets("档案录入").Cells(3, 8)    '政治面貌
            Sheets("数据表").Cells(X, 10) = Sheets("档案录入").Cells(2, 10)    '户主或与户主关系
            Sheets("数据表").Cells(X, 11) = Sheets("档案录入").Cells(8, 2)    '联系电话
            Sheets("数据表").Cells(X, 7) = Sheets("档案录入").Cells(6, 2)   '身份证地址
            Sheets("数据表").Cells(X, 8) = Sheets("档案录入").Cells(7, 2)    '现住址
            Sheets("数据表").Cells(X, 12) = Sheets("档案录入").Cells(3, 6)   '民族
            Sheets("数据表").Cells(X, 13) = Sheets("档案录入").Cells(4, 5)   '文化程度
            Sheets("数据表").Cells(X, 16) = Sheets("档案录入").Cells(5, 8)   '兵役状况
            Sheets("数据表").Cells(X, 14) = Sheets("档案录入").Cells(6, 8)   '婚姻状况
            Sheets("数据表").Cells(X, 15) = Sheets("档案录入").Cells(4, 8)   '籍贯
            Sheets("数据表").Cells(X, 6) = Sheets("档案录入").Cells(5, 2)   '身份证号
            Sheets("数据表").Cells(X, 21) = Sheets("档案录入").Cells(9, 2)   '何时由何地迁来本市(县)
            Sheets("数据表").Cells(X, 18) = Sheets("档案录入").Cells(8, 5)   '身高
            Sheets("数据表").Cells(X, 19) = Sheets("档案录入").Cells(8, 8)   '血型
            Sheets("数据表").Cells(X, 20) = Sheets("档案录入").Cells(7, 8)   '曾用名
            Sheets("数据表").Cells(X, 22) = Sheets("档案录入").Cells(10, 2)  '何时由何地迁来本地址
            Sheets("数据表").Cells(X, 23) = Sheets("档案录入").Cells(12, 2)  '关系1
            Sheets("数据表").Cells(X, 24) = Sheets("档案录入").Cells(12, 4)  '姓名1
            Sheets("数据表").Cells(X, 25) = Sheets("档案录入").Cells(12, 6)  '出生日期1
            Sheets("数据表").Cells(X, 26) = Sheets("档案录入").Cells(12, 9)  '政治面貌1
            Sheets("数据表").Cells(X, 27) = Sheets("档案录入").Cells(12, 10) '工作单位及职务1
            Sheets("数据表").Cells(X, 28) = Sheets("档案录入").Cells(13, 2)  '关系2
            Sheets("数据表").Cells(X, 29) = Sheets("档案录入").Cells(13, 4)  '名称2
            Sheets("数据表").Cells(X, 30) = Sheets("档案录入").Cells(13, 6)  '出生日期2
            Sheets("数据表").Cells(X, 31) = Sheets("档案录入").Cells(13, 9)  '政治面貌2
            Sheets("数据表").Cells(X, 32) = Sheets("档案录入").Cells(13, 10) '工作单位及职务2
            Sheets("数据表").Cells(X, 33) = Sheets("档案录入").Cells(14, 2)  '关系3
            Sheets("数据表").Cells(X, 34) = Sheets("档案录入").Cells(14, 4)  '名称3
            Sheets("数据表").Cells(X, 35) = Sheets("档案录入").Cells(14, 6)  '出生日期3
            Sheets("数据表").Cells(X, 36) = Sheets("档案录入").Cells(14, 9)  '政治面貌3
            Sheets("数据表").Cells(X, 37) = Sheets("档案录入").Cells(14, 10) '工作单位及职务3
            Sheets("数据表").Cells(X, 38) = Sheets("档案录入").Cells(15, 2)  '关系4
            Sheets("数据表").Cells(X, 39) = Sheets("档案录入").Cells(15, 4)  '名称4
            Sheets("数据表").Cells(X, 40) = Sheets("档案录入").Cells(15, 6)  '出生日期4
            Sheets("数据表").Cells(X, 41) = Sheets("档案录入").Cells(15, 9)  '政治面貌4
            Sheets("数据表").Cells(X, 42) = Sheets("档案录入").Cells(15, 10) '工作单位及职务4
            Sheets("数据表").Cells(X, 43) = Sheets("档案录入").Cells(16, 2)  '备注
            Sheets("档案录入").Cells(1, 12) = "录入成功!"

    End If
End Sub

3,如图:
     

此表格为统计表,统计数据表中相关数据,在统计年龄段人数时出现了问题,公式把100周岁以上的人员统计进了18岁以下中,求解决方法
源公式如下:
18岁以下=COUNTIF(数据表!Q3:Q1485,"<18周岁")
18岁-60周岁=COUNTIFS(数据表!Q3:Q1485,">=18周岁",数据表!Q3:Q1485,"<=60周岁")
60-89周岁=COUNTIFS(数据表!Q3:Q1485,">60周岁",数据表!Q3:Q1485,"<=89周岁")
90周岁以上=COUNTIFS(数据表!Q3:Q1485,">=90周岁")

户籍档案管理系统2 - 副本2.rar

334.89 KB, 下载次数: 12

头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2018-9-23 07:05 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-23 12:42 | 显示全部楼层
朱荣兴 发表于 2018-9-23 07:05
说了那么多,却忘了最重要的东西,附件。呵:

附件如下,请大神帮忙

户籍档案管理系统2 - 副本2.rar

334.89 KB, 下载次数: 30

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-23 20:54 | 显示全部楼层
朱荣兴 发表于 2018-9-23 07:05
说了那么多,却忘了最重要的东西,附件。呵:

对了,大神,麻烦帮我看一下,查询页面当查询出内容的时候可能会涉及到重名的人,能不能给做个弹窗里面显示重名的人名和身份证号码,然后可以点击选择任意一个进行查询?

TA的精华主题

TA的得分主题

发表于 2018-9-24 07:28 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
renxiaozhi 发表于 2018-9-23 20:54
对了,大神,麻烦帮我看一下,查询页面当查询出内容的时候可能会涉及到重名的人,能不能给做个弹窗里面显 ...

  If Sheets("管理查询").Cells(5, 2) = Sheets("数据表").Cells(i, 6) Then
我不知道你这里是如何查询的,从上面这句和你的表格来看,你是根据身份证号来查询的,身份证号是唯一的,所以不会出现说你所说的有重名的人。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-24 11:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zpy2 发表于 2018-9-24 07:28
If Sheets("管理查询").Cells(5, 2) = Sheets("数据表").Cells(i, 6) Then
我不知道你这里是如何查询 ...

这个是没问题,根据身份证不会出现,但根据人名的话就会出现了,我一共设置了两个查询控件,一个按身份证,一个按人名,下面是按姓名的:
  1. Sub 按姓名查询()
  2. Application.ScreenUpdating = False
  3.    
  4.     Dim i, X, flag
  5.     X = 3
  6.     Do While Not (IsEmpty(Sheets("数据表").Cells(X, 3).Value))
  7.         X = X + 1
  8.     Loop
  9.    
  10.     flag = 0
  11.     For i = 1 To X
  12.         If Sheets("管理查询").Cells(3, 2) = Sheets("数据表").Cells(i, 3) Then
  13.             flag = 9
  14.             Exit For
  15.         End If
  16.     Next
  17.    
  18.     If flag = 9 Then
  19.         X = i
  20.     End If
  21.    
  22.     If Sheets("管理查询").Cells(3, 2) = "" Then
  23.        Sheets("管理查询").Cells(2, 14) = "空白表不能调用"
  24.     Else
  25.             Sheets("管理查询").Cells(2, 2) = Sheets("数据表").Cells(X, 1)    '户别
  26.             Sheets("管理查询").Cells(2, 5) = Sheets("数据表").Cells(X, 2)    '户号
  27.             Sheets("管理查询").Cells(3, 2) = Sheets("数据表").Cells(X, 3)    '姓名
  28.             Sheets("管理查询").Cells(3, 4) = Sheets("数据表").Cells(X, 4)    '性别
  29.             Sheets("管理查询").Cells(3, 8) = Sheets("数据表").Cells(X, 9)    '政治面貌
  30.             Sheets("管理查询").Cells(2, 10) = Sheets("数据表").Cells(X, 10)    '户主或与户主关系
  31.             Sheets("管理查询").Cells(8, 2) = Sheets("数据表").Cells(X, 11)    '联系电话
  32.             Sheets("管理查询").Cells(6, 2) = Sheets("数据表").Cells(X, 7)   '身份证地址
  33.             Sheets("管理查询").Cells(7, 2) = Sheets("数据表").Cells(X, 8)    '现住址
  34.             Sheets("管理查询").Cells(3, 6) = Sheets("数据表").Cells(X, 12)   '民族
  35.             Sheets("管理查询").Cells(4, 2) = Sheets("数据表").Cells(X, 5)   '出生年月
  36.             Sheets("管理查询").Cells(4, 5) = Sheets("数据表").Cells(X, 13)   '文化程度
  37.             Sheets("管理查询").Cells(5, 8) = Sheets("数据表").Cells(X, 16)   '兵役状况
  38.             Sheets("管理查询").Cells(5, 5) = Sheets("数据表").Cells(X, 17)   '年龄
  39.             Sheets("管理查询").Cells(6, 8) = Sheets("数据表").Cells(X, 14)   '婚姻状况
  40.             Sheets("管理查询").Cells(4, 8) = Sheets("数据表").Cells(X, 15)   '籍贯
  41.             Sheets("管理查询").Cells(5, 2) = Sheets("数据表").Cells(X, 6)   '身份证号
  42.             Sheets("管理查询").Cells(9, 2) = Sheets("数据表").Cells(X, 21)   '何时由何地迁来本市(县)
  43.             Sheets("管理查询").Cells(8, 5) = Sheets("数据表").Cells(X, 18)   '身高
  44.             Sheets("管理查询").Cells(8, 8) = Sheets("数据表").Cells(X, 19)   '血型
  45.             Sheets("管理查询").Cells(7, 8) = Sheets("数据表").Cells(X, 20)   '曾用名
  46.             Sheets("管理查询").Cells(10, 2) = Sheets("数据表").Cells(X, 22)  '何时由何地迁来本地址
  47.             Sheets("管理查询").Cells(12, 2) = Sheets("数据表").Cells(X, 23)  '关系1
  48.             Sheets("管理查询").Cells(12, 4) = Sheets("数据表").Cells(X, 24)  '姓名1
  49.             Sheets("管理查询").Cells(12, 6) = Sheets("数据表").Cells(X, 25)  '出生日期1
  50.             Sheets("管理查询").Cells(12, 9) = Sheets("数据表").Cells(X, 26)  '政治面貌1
  51.             Sheets("管理查询").Cells(12, 10) = Sheets("数据表").Cells(X, 27) '工作单位及职务1
  52.             Sheets("管理查询").Cells(13, 2) = Sheets("数据表").Cells(X, 28)  '关系2
  53.             Sheets("管理查询").Cells(13, 4) = Sheets("数据表").Cells(X, 29)  '名称2
  54.             Sheets("管理查询").Cells(13, 6) = Sheets("数据表").Cells(X, 30)  '出生日期2
  55.             Sheets("管理查询").Cells(13, 9) = Sheets("数据表").Cells(X, 31)  '政治面貌2
  56.             Sheets("管理查询").Cells(13, 10) = Sheets("数据表").Cells(X, 32) '工作单位及职务2
  57.             Sheets("管理查询").Cells(14, 2) = Sheets("数据表").Cells(X, 33)  '关系3
  58.             Sheets("管理查询").Cells(14, 4) = Sheets("数据表").Cells(X, 34)  '名称3
  59.             Sheets("管理查询").Cells(14, 6) = Sheets("数据表").Cells(X, 35)  '出生日期3
  60.             Sheets("管理查询").Cells(14, 9) = Sheets("数据表").Cells(X, 36) '政治面貌3
  61.             Sheets("管理查询").Cells(14, 10) = Sheets("数据表").Cells(X, 37)  '工作单位及职务3
  62.             Sheets("管理查询").Cells(15, 2) = Sheets("数据表").Cells(X, 38)  '关系4
  63.             Sheets("管理查询").Cells(15, 4) = Sheets("数据表").Cells(X, 39)  '名称4
  64.             Sheets("管理查询").Cells(15, 6) = Sheets("数据表").Cells(X, 40)  '出生日期4
  65.             Sheets("管理查询").Cells(15, 9) = Sheets("数据表").Cells(X, 41)  '政治面貌4
  66.             Sheets("管理查询").Cells(15, 10) = Sheets("数据表").Cells(X, 42) '工作单位及职务4
  67.             Sheets("管理查询").Cells(16, 2) = Sheets("数据表").Cells(X, 43)  '备注
  68.             Sheets("管理查询").Cells(1, 14) = "调用成功!"
  69.     End If
  70. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2018-9-24 15:51 来自手机 | 显示全部楼层
renxiaozhi 发表于 2018-9-23 20:54
对了,大神,麻烦帮我看一下,查询页面当查询出内容的时候可能会涉及到重名的人,能不能给做个弹窗里面显 ...

http://club.excelhome.net/forum.php?mod=viewthread&tid=1436452&mobile=2
这个弹窗估计要listview
也可以用web方式。
另外,这个另存为xls居然有6m,不知你加入数据运行卡不卡。
Screenshot_2018-09-24-15-50-23.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-24 22:20 | 显示全部楼层
zpy2 发表于 2018-9-24 15:51
http://club.excelhome.net/forum.php?mod=viewthread&tid=1436452&mobile=2
这个弹窗估计要listview
...

我也担心以后1000多条数据加进去之后会导致卡,实在不知道怎么搞了

TA的精华主题

TA的得分主题

发表于 2018-9-25 07:06 来自手机 | 显示全部楼层
renxiaozhi 发表于 2018-9-24 22:20
我也担心以后1000多条数据加进去之后会导致卡,实在不知道怎么搞了

如果你是使用不是实验,建议用数据库,十万条也不是问题。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-16 02:46 , Processed in 0.027908 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表