设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[ActiveX] Access生成带汉字的二维码问题

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2023-10-30 13:43:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
最近遇到一个比较妖的客户,料号完全称不上料号,比较随性,中文、英文、数字都用上了。

然后要用到这个料号生成条码和二维码,给了我们一个很大的难题。。。。

我以前用的是microsoft BarCode Control 16.0能生成不带汉字的二维码,用BarcodeX by fath software只能生成带汉字的条码。

后参照Roych大神的贴子,用QRmaker Constrol能生成带汉字的二维码(从“富士康跳楼事件”说起——再谈二维码QRMaker控件-Access源码-access培训,excel教程,word教程-Office中国论坛/Access中国论坛 - Powered by Discuz! (office-cn.net),但是生成的二维码,扫描出来的汉字是乱码。


这个是没有汉字,microsoft BarCode Control 16.0生成的二维码


这个是带有汉字,microsoft BarCode Control 16.0生成不了二维码


我现在的问题是,怎么在Access中能生成带汉字的二维码,且通过扫描能够识别出汉字!

先谢过各位大佬了!





本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
推荐
发表于 2023-11-1 23:46:11 | 只看该作者
汉字可能要通过编码成UTF8才能被你的设备识别。有没有一种可能,是你的扫码设备识别的问题?

比如,我用支付宝扫码,全部汉字都识别出来了;微信不支持展示,但也识别出来了,点击下方的“复制文字”可以复制,贴入文本编辑器(例如备忘录之类)后正常显示,华为浏览器(P20 Pro,鸿蒙系统3.0)扫码测试也显示正确。
目前美团、淘宝、饿了么App均不支持汉字(错误提示或者该页无法显示),抖音无提示。显示乱码的是夸克浏览器。其它B站、微博之类的APP就不一一测试了。
由此可见,乱码问题并非完全是控件的原因。因此,想要解决这个问题,需要做两个事情:
1、将汉字编码(例如,UTF8)后再生成二维码。
2、在设备端对编码字符串进行解码。3、个人觉得,相对容易的做法是,先将里面的汉字用Asc函数编码为ASCII码(一般的值小于0),后面需要解码时,使用Chr转为汉字。
为了把中英文隔开,建议用for循环将每个转码用特殊符号连起来,后面解码时split一下,再连起来就好了。
以下是参考函数:
  1. Function Encode_Asc(ByVal strEncode As String) As String
  2.     Dim i As Long
  3.     Dim strR As String
  4.     For i = 1 To Len(strEncode)
  5.         strR = strR & Asc(Mid(strEncode, i, 1)) & "|"
  6.     Next
  7.     Encode_Asc = strR
  8. End Function


  9. Function Decode_Asc(ByVal strDecode As String) As String
  10.     Dim i As Long
  11.     Dim strR As String
  12.     Dim strArr
  13.     strArr = Split(strDecode, "|")
  14.    
  15.     For i = 0 To UBound(strArr) - 1
  16.         strR = strR & Chr(CLng(strArr(i)))
  17.     Next
  18.     Decode_Asc = strR
  19. End Function

  20. Sub test()
  21.     Debug.Print Encode_Asc("你是Roych")
  22.     '返回-15133|-13625|82|111|121|99|104|
  23.     Debug.Print Decode_Asc("-15133|-13625|82|111|121|99|104|")
  24.     '返回你是Roych
  25. End Sub
复制代码
比如,应用场景如下:
假设二维码是:-15133|-13625|82|111|121|99|104|,对应的控件是Text0,扫码后在更新后事件里,读取Me.Text0的值,然后调用Decode_Asc解码,把解码得到的值作为条件进行查询,或者把解码后的值添加到表记录中,这些都可以。
综上,在设计表时,可以考虑2个字段。一个是原文字段,另一个是编码后用于生成二维码的字段。

本帖子中包含更多资源

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

x
回复 支持 1 反对 0

使用道具 举报

18#
发表于 2023-12-25 10:48:29 | 只看该作者
@daviee,是哪个控件,你的例子可以分享下吗?谢谢

点击这里给我发消息

17#
 楼主| 发表于 2023-12-13 16:50:05 | 只看该作者
smileyoufu 发表于 2023-12-4 17:56
http://www.rubylong.cn/
用上面链接的锐浪报表,支持各种码

这个锐浪报表确实牛,中文条码,二维码都能生成

本帖子中包含更多资源

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

x

点击这里给我发消息

16#
发表于 2023-12-4 17:56:07 | 只看该作者
http://www.rubylong.cn/
用上面链接的锐浪报表,支持各种码
15#
发表于 2023-12-1 09:39:35 | 只看该作者
不能使用ACCESS自带的,论坛里有支持中文二维码的控件。

点击这里给我发消息

14#
 楼主| 发表于 2023-11-6 14:50:09 | 只看该作者


这位版主的建议,从其它地方生成带汉字的二维码,再插入,这个就很麻烦了,失去了Access数据管理的功能了。

目前我是在access报表中,关联到查询字段,自动生成二维码的

本帖子中包含更多资源

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

x

点击这里给我发消息

13#
 楼主| 发表于 2023-11-6 14:31:42 | 只看该作者
roych 发表于 2023-11-4 01:52
按草料二维码网站的说法,
因微信规则调整,含中文的静态码使用微信扫描后。全网的二维码生成器都是这样 ...

按您的这个方法,和我们的流程不太一样,你这个是自己公司内部的系统处理问题,就是把带汉字的内容生成ACSII码,生成二维码,然后再把扫出来的ACCII码转换成汉字。

我现在流程,前面一部把汉字转化成ACSII码,这部分可以在公司系统解决,后面是因为生成的二维码在标签上,标签随物品流转到客户那里了,客户的系统不一定能把ASCII 码转换成汉字,只会扫出来的是转换后的ASCII码了。

目前microsoft BarCode Control 16.0这个控件是无法生成带汉字的二维码,但是很奇怪,一维码(条码)竟然能生成带汉字的。
12#
发表于 2023-11-4 01:52:30 | 只看该作者
daviee 发表于 2023-11-3 11:46
看来是扫描终端的兼容问题,支付宝能够扫出来,微信不行,谢谢roych指点!

按草料二维码网站的说法,

因微信规则调整,含中文的静态码使用微信扫描后
。全网的二维码生成器都是这样。


但不代表无法识别
你点击下方的按钮,然后打开文本编辑器,例如短信、备忘录之类,看看能不能粘贴上去?反正我测试是没问题的。
顺带回答一下,另一个无解的问题:
这个是微软技术社区代理斑竹的回复,希望对你有所帮助(放弃治疗
如果是扫描枪识别录入信息,其实可以按我前面说的来做。二维码用ASCII码,识别后再通过窗体事件转为中文存入数据库。

以前我们公司是这么干的:
1、开单后打印包含条码的订单。
2、操作(例如,录入订单完成结果)时打开订单软件。
3、点击按钮进入录入信息界面,激活录入订单号的文本框。
4、通过扫描枪将条码录入到系统。
按这个流程,你只需要修改第1步和补充第5步。
1、将包含汉字的二维码转为ASCII码。
4、将扫码得到的ASCII码转为汉字。
5、将汉字录入系统。
扫码过程,本质上属于录入信息自动化。因此,你只需要在文本框里的更新后事件里进行转码即可。
也就是说,以前你录入的是汉字,现在你录入的ASCII码,后台帮你把这个ACII码转为汉字再录入。有啥问题么?

本帖子中包含更多资源

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

x

点击这里给我发消息

11#
 楼主| 发表于 2023-11-3 13:53:40 | 只看该作者
roych 发表于 2023-11-1 23:50
可能因为你用的是win 10家庭版,这个似乎无解。目前我的win 11家庭版倒是没问题。

Roych大神对microsoft BarCode Control 16.0 这个有研究么?这个当有汉字时,生成不了二维码

点击这里给我发消息

10#
 楼主| 发表于 2023-11-3 11:46:56 | 只看该作者
roych 发表于 2023-11-1 23:46
汉字可能要通过编码成UTF8才能被你的设备识别。有没有一种可能,是你的扫码设备识别的问题?

比如, ...

看来是扫描终端的兼容问题,支付宝能够扫出来,微信不行,谢谢roych指点!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-1 17:58 , Processed in 0.116057 second(s), 37 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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