设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 5442|回复: 11
打印 上一主题 下一主题

[窗体] 请各位老师看看下面的例子如何批量生成没有音标的拼音

[复制链接]
跳转到指定楼层
1#
发表于 2017-6-11 13:47:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请各位老师看看下面的例子如何批量生成没有音标的拼音
我想将表1中的词语批量添加没有音标的拼音,请问帮助看看,谢谢

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2017-6-11 14:45:11 | 只看该作者
这个或许有帮助

本帖子中包含更多资源

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

x
3#
 楼主| 发表于 2017-6-11 15:59:44 | 只看该作者
fan0217 老师能给修改一下例子吗?谢谢
4#
 楼主| 发表于 2017-6-11 16:54:04 | 只看该作者
在论坛里找了个例子,在查询里使用这个自定义函数
例子: aa:HzTPy([词语])
查询运行结果是这样:
姓名        aa
张晔        zhangye
华朵        huaduo
九牛一毛        jiuniuyimao

如何将拼音进行“”分隔开,谢谢
'调用方法:
'HzTPy(Hz As String, Optional Sep As String = "", Optional ShowNotation As Boolean = True, Optional ShowInitialOnly As Boolean, Optional ShowOnlyOneChar As Boolean = True) As String
'                     参数名                       参数类型            说明
'第1个参数   Hz                                字符型              为汉字字符串
'第2个参数   Sep                             字符型,可选    设定拼音间隔字符,默认为空("")
'第3个参数   ShowNotation              布尔型,可选    设定是否显示注音符号,默认显示          注意如果值为TRUE,带音标,false不带音标
'第4个参数   ShowInitialOnly            布尔型,可选    设定是否仅显示拼音首字,默认显示全部
'第5个参数   ShowOnlyOneChar     布尔型,可选    设定是否仅显示拼音首字母("zh"显示为"z"),默认只显示首字母

Public Function HzTPy( _
        Hz As String, _
        Optional Sep As String = "", _
        Optional ShowNotation As Boolean = False, _
        Optional ShowInitialOnly As Boolean, _
        Optional ShowOnlyOneChar As Boolean = True) As String
    Dim MyCls As sgr
    Set MyCls = New sgr          '创建类
    If Sep <> "" Then
        MyCls.Seperator = Sep
        MyCls.UseSeperator = True
    End If
    MyCls.InitialOnly = ShowInitialOnly
    MyCls.OnlyOneChar = ShowOnlyOneChar
    HzTPy = MyCls.GetPinYin(Hz)
    If Not ShowNotation Then HzTPy = MyCls.AdjustPhoneticNotation(HzTPy, pnNoNotation)
    Set MyCls = Nothing            '释放类
End Function
5#
发表于 2017-6-11 17:00:01 | 只看该作者
yanwei82123300 发表于 2017-6-11 15:59
fan0217 老师能给修改一下例子吗?谢谢

尝试了下,不大会写VBA代码了。
6#
 楼主| 发表于 2017-6-12 06:00:58 来自手机 | 只看该作者
请各位老师帮助看一下,谢谢了
7#
 楼主| 发表于 2017-6-12 08:02:05 | 只看该作者
请各位老师给看看谢谢!
8#
发表于 2017-6-12 11:41:51 | 只看该作者
yanwei82123300 发表于 2017-6-12 08:02
请各位老师给看看谢谢!

试试这样看看
增加自定义函数Adj
  1. <div><font style="background-color: rgb(255, 255, 255);">Public Function Adj(py As String) As String</font></div><div><font style="background-color: rgb(255, 255, 255);">    Dim CNChr As New Charter</font></div><div><font style="background-color: rgb(255, 255, 255);">    CNChr.UseSeperator = True
  2.     CNChr.Seperator = " "</font></div><div><font style="background-color: rgb(255, 255, 255);">    If Not IsNull(py) Then
  3.         Adj = CNChr.GetPinYin(py)
  4.         Adj = CNChr.AdjustPhoneticNotation(Adj, False)
  5.     Else
  6.         Adj = ""
  7.     End If</font></div><div><font style="background-color: rgb(255, 255, 255);">End Function</font></div>
复制代码
查询中直接调用
  1. SELECT 表1.姓名, Adj([姓名]) AS aa
  2. FROM 表1;

复制代码



本帖子中包含更多资源

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

x
9#
发表于 2017-6-12 11:42:47 | 只看该作者
重发一下(上面乱了)
  1. Public Function Adj(py As String) As String

  2.     Dim CNChr As New Charter

  3.     CNChr.UseSeperator = True
  4.     CNChr.Seperator = " "

  5.     If Not IsNull(py) Then
  6.         Adj = CNChr.GetPinYin(py)
  7.         Adj = CNChr.AdjustPhoneticNotation(Adj, False)
  8.     Else
  9.         Adj = ""
  10.     End If

  11. End Function
复制代码
10#
 楼主| 发表于 2017-6-12 12:09:40 | 只看该作者
运行查询显示系统错误"run-time error '13'" type mismatch
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-6 02:02 , Processed in 0.099944 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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