Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 7396|回复: 42

[已解决]老师如何修改复盖当前Access数据库的数据表记录的内容

[复制链接]
发表于 2013-6-6 11:20 | 显示全部楼层 |阅读模式
本帖最后由 qinhuan66 于 2013-6-6 11:42 编辑

老师如何修改复盖当前Access数据库的数据表记录的内容

本人有一个工作薄,里面有三个工作表。1、是录入到Access数据库的表(已完成);2、是查询Access数据库信息的表;3、是现在需要老师处理的表(已经做到输入姓名后即从Access数据库的表获取相应数据);主要是修改后如何替换后台Access数据库的数据表当前报名序号的当条记录。报名序号不能重复,只能修改本条记录。
公开招聘报名系统.rar (166.43 KB, 下载次数: 18)
发表于 2013-6-6 13:08 来自手机 | 显示全部楼层
用sql 的update或者查询到记录集直接修改,再用rst.update
回复

使用道具 举报

发表于 2013-6-6 13:08 来自手机 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2013-6-6 20:33 | 显示全部楼层
hwc2ycy 发表于 2013-6-6 13:08
晚上再来帮你看。

好的谢谢您hwc2ycy老师
回复

使用道具 举报

发表于 2013-6-6 21:41 | 显示全部楼层
因为字段实在过多,你更新可以这样,先删除原有的纪录,再添加新记录。
回复

使用道具 举报

 楼主| 发表于 2013-6-6 21:50 | 显示全部楼层
hwc2ycy 发表于 2013-6-6 21:41
因为字段实在过多,你更新可以这样,先删除原有的纪录,再添加新记录。

老师上次弄的这个是可以修改但换到这个表有合并单元格的请不行,我就是这个才头疼。
下面这个可以获取和修改的。怎么样才能换到现在这个表呢?谢谢
麻烦hwc2ycy帮忙看一下谢谢
求助.rar (45.94 KB, 下载次数: 20)
回复

使用道具 举报

发表于 2013-6-6 21:53 | 显示全部楼层
直接选先删除再添加的。
字段比较多,要写对应的就很多了。
  1. Sub 修改数据库()
  2.     Dim AccessFile As String, Database As String, sql As String
  3.     Dim StrConn$, strSql$
  4.     Dim lLastRow&
  5.     Dim arr, i&, j As Byte

  6.     Dim AdoxCat As Object
  7.     Dim AdoCmd As Object
  8.     Dim AdoConn As Object
  9.     Dim AdoRst As Object

  10.     On Error GoTo Errcheck
  11.     AccessFile = ThisWorkbook.Path & "\gkzp.mdb"
  12.     Database = "gkzp"
  13.     If Dir(AccessFile) = "" Then

  14.         '检测文件是否存在,不存在则创建数据库
  15.         Set AdoxCat = CreateObject("adox.catalog")
  16.         AdoxCat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & AccessFile & ";Jet OLEDB:Database Password=695360052;"
  17.         Set AdoConn = AdoxCat.ActiveConnection
  18.         Set AdoCmd = CreateObject("ADODB.Command")
  19.         Set AdoCmd.ActiveConnection = AdoConn
  20.         AdoCmd.CommandText = "CREATE TABLE " & Database & _
  21.                              " (报名序号 text(3),报名时间 datetime ,报考类别 text(30),操作员 text(6),姓名 text(8),性别 text(2),出生日期 datetime ,籍贯 text(30),民族 text(10)," & _
  22.                              "政治面貌 text(20),健康状况 text(20),参加工作时间 datetime ,最高学历毕业时间 datetime ,移动电话 text(12),固定电话 text(11),身份证号 text(18),电子邮箱 text(20)," & _
  23.                              "现工作单位及职务(或家庭住址) text(50),报考职位 text(50),全日制教育 text(50),全日制教育毕业院校及专业 text(50),在职教育 text(50),在职教育毕业院校及专业 text(50),学习工作简历 text(50),提供材料 text(120),资格审查情况 text(6))"

  24.         AdoCmd.Execute
  25.         Set AdoCmd = Nothing
  26.         Set AdoxCat = Nothing
  27.         Set AdoConn = Nothing

  28.     End If
  29.     If Len([B3]) = 0 Or Len([F3]) = 0 Or Len([J3]) = 0 Or Len([B4]) = 0 Or Len([F4]) = 0 Or Len([J4]) = 0 Or Len([B5]) = 0 Or Len([F5]) = 0 Or Len([J5]) = 0 Or Len([C6]) = 0 Or Len([J6]) = 0 Or Len([C7]) = 0 Or Len([J7]) = 0 Or Len([E8]) = 0 Or Len([E9]) = 0 Or Len([D10]) = 0 Or Len([I10]) = 0 Or Len([D11]) = 0 Or Len([I11]) = 0 Or Len([B12]) = 0 Then
  30.         MsgBox "对不起!黄色区域数据输入不完整,请先填好数据再进行提交。"
  31.         Exit Sub
  32.     End If



  33.     StrConn = "Provider= Microsoft.Jet.OLEDB.4.0;" & _
  34.               "Data Source='" & AccessFile & "';jet oledb:Database Password=695360052"

  35.     Set AdoConn = CreateObject("ADODB.Connection")

  36.     AdoConn.CursorLocation = 3
  37.     AdoConn.Mode = 3
  38.     AdoConn.CommandTimeout = 5
  39.     AdoConn.connectionTimeout = 5
  40.     AdoConn.Open StrConn

  41.     If AdoConn.State <> 1 Then MsgBox "数据库连接失败", vbCritical + vbOKOnly: Exit Sub

  42.     strSql = "delete * from " & Database & " where 报名时间=#" & [L4] & "# " & " and 姓名 like '" & [B3] & "' and 身份证号='" & [C7] & "'"



  43.     Dim strTGCL$    '提供材料
  44.     Dim strZGSCQK$  '资格审查情况
  45.     Dim item1

  46.     With Sheet1
  47.         For Each item1 In .OLEObjects   '控件遍历
  48.             With item1
  49.                 If .Name Like "CheckBox*" Then  '过滤非CHECKBOX
  50.                     Select Case True
  51.                         Case .Object.Value And .TopLeftCell.Row = 17    '17行的数据
  52.                             strTGCL = strTGCL & .Object.Caption & ","
  53.                         Case .Object.Value And .TopLeftCell.Row = 22    '22行的数据
  54.                             strZGSCQK = strZGSCQK & item1.Object.Caption & ","
  55.                     End Select

  56.                 End If
  57.             End With
  58.         Next
  59.     End With

  60.     If Len(strTGCL) Then
  61.         strTGCL = Left(strTGCL, Len(strTGCL) - 1)  '过滤最后的","
  62.     Else
  63.         strTGCL = "无"
  64.     End If

  65.     If Len(strZGSCQK) Then
  66.         strZGSCQK = Left(strZGSCQK, Len(strZGSCQK) - 1)  '过滤最后的","
  67.     Else
  68.         strZGSCQK = "无"
  69.     End If



  70.     'Set AdoRst =
  71.     AdoConn.Execute (strSql)


  72.     strSql = " insert into " & Database & " values('" & [L3] & "',#" & [L4] & "#,'" & [L5] & "','" & [L6] & "','" & [B3] & "','" & [F3] & "',#" & [J3] & "#,'" & [B4] & "','" & [F4] & "','" & _
  73.              [J4] & "','" & [B5] & "',#" & [F5] & "#,'" & [J5] & "','" & [C6] & "','" & [J6] & "','" & [C7] & "','" & [J7] & "','" & _
  74.              [E8] & "','" & [E9] & "','" & [D10] & "','" & [I10] & "','" & [D11] & "','" & [I11] & "','" & [B12] & "','" & strTGCL & "','" & strZGSCQK & "')"
  75.     AdoConn.Execute strSql
  76.     MsgBox "呵呵!本次数据已修改"
  77.     [B3:C3,F3:G3,J3,L3,B4:C4,F4:G4,J4,L4,B5:C5,F5:G5,J5,L5,C6:G6,J6,L6,C7:G7,J7:L7,E8:L8,E9:L9,D10:F10,I10:L10,D11:F11,I11:L11,B12:L16] = ""
  78.     [L3] = [L3] + 1

  79.     '清除单选框
  80.     With Sheet1
  81.         For Each item1 In .OLEObjects   '控件遍历
  82.             With item1
  83.                 Select Case TypeName(.Object)
  84.                     Case "CheckBox"
  85.                         .Object.Value = False
  86.                 End Select
  87.             End With
  88.         Next
  89.     End With

  90.     AdoConn.Close
  91.     Set AdoConn = Nothing
  92.     Exit Sub

  93. Errcheck:

  94.     MsgBox Err.Number & vbNewLine & _
  95.            Err.Description
  96. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
qinhuan66 + 3 很给力!谢谢老师一直以来的大力帮忙。谢谢

查看全部评分

回复

使用道具 举报

发表于 2013-6-6 21:56 | 显示全部楼层
另外,你导入数据最好有个依据,是身份证号呢还是报考序号,你在查询时用了报考时间,这个不太好。
回复

使用道具 举报

 楼主| 发表于 2013-6-6 22:05 | 显示全部楼层
hwc2ycy 发表于 2013-6-6 21:56
另外,你导入数据最好有个依据,是身份证号呢还是报考序号,你在查询时用了报考时间,这个不太好。

谢谢老师还是用身份证吧。谢谢
回复

使用道具 举报

发表于 2013-6-6 22:08 | 显示全部楼层
好长                                             
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-24 01:05 , Processed in 0.455496 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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