表格操作系列

四、字段名与字段别名的获取

在使用数据库编程时,经常需要在别名与字段名之间做一些操作,字段名一般使用英文字符,别名一般使用中文字符,这样就可以满足显示与数据库操作两不误的需要。但是在写代码时,使用别名,数据库又不认,使用字段名写代码又不太方便,两者兼顾时容易出错。下面的代码,可以很好的实现字段名与别名之间的操作。
将字段名与别名存储在一个表中,按列存好,可以在编程时先行定义,这样也可以避免在使用时出现混乱。在写代码时,可以使用别名对字段名进行自动引用,具体见以下函数。

单字段操作

Public Function FieToAli(Fie As String, Optional Sh As String = "INI") As String
Dim Rng As Range
Dim co As IntegerIf Sh = "" Then Sh = ActiveSheet.Name
With ThisWorkbook.Sheets(Sh)Set Rng = .Range("1:1").Find("别名", lookat:=xlWhole)If Not Rng Is Nothing Then co = Rng.ColumnSet Rng = .Range("1:1").Find("字段", lookat:=xlWhole)If Not Rng Is Nothing ThenSet Rng = .Range(Chr(64 + Rng.Column) & ":" & Chr(64 + Rng.Column)).Find(Fie, lookat:=xlWhole)If Not Rng Is Nothing Then FieToAli = .Cells(Rng.Row, co): Exit FunctionEnd If
End With
End FunctionPublic Function AliToFie(Ali As String, Optional Sh As String = "INI") As String
Dim Rng As Range
Dim co As IntegerIf Sh = "" Then Sh = ActiveSheet.Name
With ThisWorkbook.Sheets(Sh)Set Rng = .Range("1:1").Find("字段", lookat:=xlWhole)If Not Rng Is Nothing Then co = Rng.ColumnSet Rng = .Range("1:1").Find("别名", lookat:=xlWhole)If Not Rng Is Nothing ThenSet Rng = .Range(Chr(64 + Rng.Column) & ":" & Chr(64 + Rng.Column)).Find(Ali, lookat:=xlWhole)If Not Rng Is Nothing Then AliToFie = .Cells(Rng.Row, co): Exit FunctionEnd If
End With
End FunctionPublic Function FiesToAli(Fies As String, Optional Sh As String = "INI") As String
Dim Rng As Range
Dim co As Integer
Dim 字段 As StringDim i As Integer
Dim sp() As String
If Sh = "" Then Sh = ActiveSheet.Name
sp = Split(Fies, ",")
If UBound(sp) = 0 Then Exit FunctionWith ThisWorkbook.Sheets(Sh)Set Rng = .Range("1:1").Find("别名", lookat:=xlWhole)If Not Rng Is Nothing Then co = Rng.ColumnSet Rng = .Range("1:1").Find("字段", lookat:=xlWhole)If Not Rng Is Nothing Then字段 = Chr(64 + Rng.Column) & ":" & Chr(64 + Rng.Column)For i = 0 To UBound(sp)Set Rng = .Range(字段).Find(sp(i), lookat:=xlWhole)If Not Rng Is Nothing Then Fies = Replace(Fies, sp(i), .Cells(Rng.Row, co))NextEnd If
End WithFiesToAli = Fies
End Function

多字段操作

Public Function AlisToFie(Alis As String, Optional Sh As String = "INI") As String
Dim Rng As Range
Dim co As Integer
Dim 别名 As StringDim i As Integer
Dim sp() As String
sp = Split(Alis, ",")
If UBound(sp) = 0 Then Exit Function
If Sh = "" Then Sh = ActiveSheet.Name
With ThisWorkbook.Sheets(Sh)Set Rng = .Range("1:1").Find("字段", lookat:=xlWhole)If Not Rng Is Nothing Then co = Rng.ColumnSet Rng = .Range("1:1").Find("别名", lookat:=xlWhole)If Not Rng Is Nothing Then别名 = Chr(64 + Rng.Column) & ":" & Chr(64 + Rng.Column)For i = 0 To UBound(sp)Set Rng = .Range(别名).Find(sp(i), lookat:=xlWhole)If Not Rng Is Nothing Then Alis = Replace(Alis, sp(i), .Cells(Rng.Row, co))NextEnd If
End WithAlisToFie = Alis
End Function

配置表样子

调用例子

Sub aa()
MsgBox FieToAli("dataname") & vbCrLf & _AliToFie("数据库名") & vbCrLf & _FiesToAli("dataname,username") & vbCrLf & _AlisToFie("数据库名,密码")
End Sub

返回值

表格操作系列未完,待续!

——专注办公软件的二次开发及培训,你有问题,我有思路!
——微博、微信、CSDN同号:w_dexu
——转载请注明出处!

扫码加微信

表格操作系列——字段名与字段别名的获取相关推荐

  1. SQL获取所有用户名,数据库名、所有表名、所有字段名及字段类型

    SQL获取所有用户名,数据库名.所有表名.所有字段名及字段类型2009-03-14 10:481.获取所有用户名:SELECT name FROM Sysusers where status='2' ...

  2. % mysql 代表_MySQL中的星号(*)和百分号(%)代表表示什么,MySQL的库名、表名、字段名、字段值是否区分大...

    1.MySQL中的星号(*)和百分号(%)代表表示什么 星号(*):表示全部的意思. select * from table_name;(查询表table_name中所有的数据) 百分号(%):表示通 ...

  3. SQL语句获取数据库名、所有表名、所有字段名及字段类型

    SQL语句获取所有用户名,数据库名.所有表名.所有字段名及字段类型,方法来自于网上,稍加修改 1.获取所有用户名: SELECT name FROM Sysusers where status='2' ...

  4. oracle 查询表字段6,Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名、...

    --创建用户 create user "用户名" identitied by "密码": --给自己修改密码 查询所有表名: select t.table_na ...

  5. 【Hibernate】Hibernate中查询表名、字段名以及字段类型等信息

    Hibernate中查询表名.字段名以及字段类型等信息的工具类 package com.lmb.ui.util;import org.hibernate.cfg.Configuration; impo ...

  6. Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名...

    查询所有表名: select t.table_name from user_tables t; 查询所有字段名: select t.column_name from user_col_comments ...

  7. sql查询结果字段名与字段值倒过来了

    数据库为sybase, sql如下: 1 select substring(LRRJG,1,7) as SSQJ, 2 sum(case when RWDL_BH = '01' then 1 else ...

  8. oracle查表字段长度,oracle中查询某张表中的字段名,字段类型,字段长度等信息...

    oracle中查询某张表中的字段名,字段类型,是否为空,字段长度等信息 --更改某张表的字段类型长度 alter table bill_info modify IDCARD VARCHAR2 (30) ...

  9. 表格操作系列——在指字的区域内增加或删除行不影响排版

    表格操作系列 二.在指定的区域内添加行或删除行 在一些表格操作中,已经画好了每页的表格,并且做好了设定,可以实现每一页的页面下好打印在一个整页里,这就需要在编辑时的增加或是删除行时,不破坏原有的排版设 ...

  10. oracle查询所有表的中文名,Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名、...

    查询所有表名: select t.table_name from user_tables t; 查询所有字段名: select t.column_name from user_col_comments ...

最新文章

  1. RS232 波特率时钟产生方法?
  2. dbc2000找不到服务器控制台,控制面板没有BDE Administrator(安装好DBC2000找不到)
  3. Python中的 @staticmethod@classmethod方法
  4. MySQL-DB参数、内存、I/O、安全等相关参数设置
  5. 笔记-信息系统安全管理-安全审计
  6. 表单验证JavaScript实现正则匹配、随机验证码、密码强度、加拖拽加蒙板
  7. 民航重组:做大容易做强难
  8. Windows Redis3 安装
  9. 计算机aero背景黑,Win7中Aero下面的主题变为黑色
  10. Word没有到一行自动换行如何解决
  11. 菜鸟教程nginx视频_Nginx教程(一) Nginx入门教程
  12. 差分约束——vijos1589
  13. 了解一下DDD领域驱动设计
  14. 计算机啊如何进入代码编写界面,一段程序代码写完以后是如何转换成有操作界面的软件的?...
  15. 关于叶子的思维导图_关于叶子的思维导图制作方法
  16. Python012--python3.7在本地及虚拟机上的安装与配置
  17. 使用Mac时Coursera视频无法播放的解决方法
  18. IM即时通讯综合消息系统的架构
  19. html中splice向数组添加元素,js中splice()的强大(删除,插入或替换数组的元素)
  20. 一大波优秀3D作品来袭!看各国3D艺术家如何描绘2020!

热门文章

  1. openwrt使用tayga/totd实现NAT64/DNS64
  2. [渝粤教育] 四川大学 食物营养学 参考 资料
  3. python股票量化交易系统源码_经典的股票量化交易策略(含源码)
  4. 计算机应用中格式刷怎么用,Word中格式刷怎么用? -电脑资料
  5. 7-2 前n项的和2 (10 分)
  6. Mac m1安装jmeter
  7. 如何修改jar包并重新打包
  8. Arnold渲染用炫云云渲染让我动画制作更轻松了
  9. 自走棋突然显示服务器无法定位,刀塔自走棋服务器无法定位游戏会话_刀塔自走棋服务器无法定位游戏会话怎么回事_玩游戏网...
  10. React图片压缩上传统一处理