设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: 5988143
打印 上一主题 下一主题

[表] 怎样快速将所有表的记录(英文字母)全部转换为大写!

[复制链接]
11#
发表于 2009-3-2 21:05:33 | 只看该作者
基本思路和ACMAIN_CHM 相差无几

更好的方法暂时还没想到
回复

使用道具 举报

12#
发表于 2009-3-2 21:18:44 | 只看该作者
没有必要对第个字段进行ucase, 没有必要用recordset对每记录单独处理。
只需要对 char/varchar的字段处理。 一个表用一个UPDATE语句交给jet引擎就行了。



******************
*  一切皆有可能  *
******************

.
ACMAIN - Access论坛回贴准则(个人).
.

.
QQ群 48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/BList/OtherDatabase .
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://www.office-cn.net .
.
http://www.office-cn.net/home/space.php?uid=141646 .
回复

使用道具 举报

13#
 楼主| 发表于 2009-3-2 22:18:42 | 只看该作者
有没有中英数子混合的情况
andymark 发表于 2009-3-2 19:34


有中英文混合的情况~
回复

使用道具 举报

14#
发表于 2009-3-2 22:29:05 | 只看该作者
有中英文混合的情况~
5988143 发表于 2009-3-2 22:18


不会是要把a也变成A吧?!
那除了ucase 还得 replace 26次啊。如果一个 1G 的mdb文件,估计快不起来了。


******************
*  一切皆有可能  *
******************

.
ACMAIN - Access论坛回贴准则(个人).
.

.
QQ群 48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/BList/OtherDatabase .
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://www.office-cn.net .
.
http://www.office-cn.net/home/space.php?uid=141646 .
回复

使用道具 举报

点击这里给我发消息

15#
发表于 2009-3-2 23:06:12 | 只看该作者
那不如转到EXCEL里,用UPPER函数,再转回ACC……
我闪……
回复

使用道具 举报

16#
 楼主| 发表于 2009-3-3 08:51:56 | 只看该作者
Public Sub UCaseAllRecord()
    Dim strTblName() As String
    Dim rs As New ADODB.Recordset
    Dim i As Long, j As Long
    Dim k As Integer
    Dim db As Database
    Dim tbl As DAO.TableDef
...
Henry D. Sy 发表于 2009-3-2 20:25






提示錯誤: -2147217887(80040e21)
回复

使用道具 举报

17#
发表于 2009-3-3 08:57:02 | 只看该作者
提示錯誤: -2147217887(80040e21)
5988143 发表于 2009-3-3 08:51

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

18#
 楼主| 发表于 2009-3-3 11:15:51 | 只看该作者
Henry D. Sy 发表于 2009-3-3 08:57


呵呵~找到原因了,不能與  MSADOX.DLL 同時使用~
回复

使用道具 举报

19#
 楼主| 发表于 2009-3-3 12:19:11 | 只看该作者
Henry D. Sy 发表于 2009-3-3 08:57


我新添加了兩個新表的數據,無法通過測試~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

20#
发表于 2009-3-3 14:26:15 | 只看该作者
Public Sub Capitalization()
    Dim db As DAO.Database
    Dim rsdb As DAO.Recordset
    Dim rs As DAO.Recordset
    Dim sql As String
    Dim qd As DAO.QueryDef
    Dim i As Integer
    Dim upfield As String

    sql = "SELECT MSysObjects.Name, MSysObjects.Type" & _
          " FROM MSysObjects" & _
          " WHERE ((Mid([Name], 1, 4) <> 'Msys') And ((MSysObjects.Type) = 1))"

    Set rsdb = CurrentDb.OpenRecordset(sql)
    Set qd = CurrentDb.QueryDefs("查询1")

    Do Until rsdb.EOF
        Set rs = CurrentDb.OpenRecordset(rsdb(0))
        For i = 0 To rs.Fields.Count - 1
            If rs.Fields(i).Type = dbText Or rs.Fields(i).Type = dbMemo Then
                upfield = upfield & rs.Fields(i).Name & "=ucase([" & rs.Fields(i).Name & "]),"
            End If
        Next
        If upfield <> "" Then
            qd.sql = "update [" & rsdb(0) & "] set " & Mid(upfield, 1, Len(upfield) - 1)
            qd.Close
            CurrentDb.Execute "查询1"
            upfield = ""
        End If
        rsdb.Move 1
    Loop
    Set rsdb = Nothing
    Set rs = Nothing
    Set qd = Nothing
   
End Sub

用法,随便建立一个查询,命名为“查询1"
然后运行上面的代码。
上面的代码只对文本字段和备注字段有效。
回复

使用道具 举报

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

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-15 23:39 , Processed in 0.107346 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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