access临时

7 篇文章 0 订阅
7 篇文章 0 订阅

excel透视表中将日期年月日格式转变为年、季、月、日或月日、年月、年季等组合模式。

透视表右键单击日期单元格,弹出快捷菜单中选中“组合”,弹出的二级菜单中出现“年”、“季”、“月”、“日”,单击选中一个或几个即可。

 

excel中身份证号码推导出周岁,或总月数、天数。

=DATEDIF(TEXT(MID(C15,7,8),"0000-00-00"),TODAY(),"m")/12
=DATEDIF(TEXT(MID(C15,7,8),"0000-00-00"),TODAY(),"m")
=DATEDIF(TEXT(MID(C15,7,8),"0000-00-00"),TODAY(),"y")

excel中CEILING()函数用途:核定经济补偿金年限。
工龄的小数部分:工龄不超半年按半年计算,超过半年按1年计算。
CEILING.MATH函数将数字向上舍到最接近的整数或最接近指定基数的倍数。
CEILING函数将数字向上舍到最接近的指定基数的倍数。
 

=CEILING(A1,0.5)或=CEILING.MATH(A1,0.5)

 

Word表格逆时针旋转90度的简单方法
分节操作。如果表格前后都有内容,并只想调整一个表格的方向,可以利用将Word文档分节的方式处理。具体操作:

(1)将光标放置在表格与前面文字间的适当位置,用鼠标依次点击“页面布局-分隔符-分节符-下一页”。
(2)将光标放置在表格与后面文字间的适当位置,用鼠标依次点击“页面布局-分隔符-分节符-下一页”。
(3)这样就将表格与前后内容分在不同节中。

(4)选中表格,再点选word的工具菜单栏——布局——纸张方向,横向即可。
将Word表格逆时针旋转90度的简单方法-百度经验  https://jingyan.baidu.com/article/3c343ff7d5f8480d377963e1.html

 

SQL SELECT DISTINCT 语句  https://www.w3school.com.cn/sql/sql_distinct.asp

《Access是否支持临时表?该如何建立?》-- access911.net 文章  http://access911.net/fixhtm/79FAB71E13DC.htm

 

如何在Access中执行SQL语句和access采用sql语句与sql的区别 - Tom的...  http://www.360doc.com/content/10/1121/09/3970454_71085374.shtml

 

left join得到数据条数比左表原数据表多:
原因:左表、右表连接字段(如:用户id),在第二张表中出现了多条记录具有相同用户id,将导致结果表记录数比左表记录数多。

SELECT [emplyee_base_info 查询].NC编码, * INTO t_labordispute_NCCODE
FROM t_labordispute LEFT JOIN [emplyee_base_info 查询] ON t_labordispute.员工证号 = [emplyee_base_info 查询].证件号码;

不允许在select into 语句中使用多值字段

 

 

复合主键与联合主键

 

 

access

更新

UPDATE 原表劳动纠纷 SET 原表劳动纠纷.[员工编码] ='0002776' where 	原表劳动纠纷.[申请人证号]='98410065039';
Option Compare Database

Sub mksjptable()
Dim s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10 As String

s0 = "SELECT 员工NC顺序码.NC编码, 离职a0.公司, 离职a0.姓名, 离职a0.证件号码, 离职a0.户籍地址, 离职a0.岗位分类, 离职a0.工龄核定起始日期, 离职a0.H2B时间, 离职a0.备注, 离职a0.进入集团日期, 离职a0.职务名称, 离职a0.职级名称, 离职a0.社保缴交地, 离职a0.档案编号 INTO 基本情况汇总表 FROM 离职a0 INNER JOIN 员工NC顺序码 ON 离职a0.人员编码 = 员工NC顺序码.NC编码;"

s1 = "INSERT INTO 基本情况汇总表 ( NC编码, 公司, 姓名, 证件号码, 户籍地址, 岗位分类, 工龄核定起始日期, H2B时间, 备注, 进入集团日期, 职务名称, 职级名称, 社保缴交地, 档案编号 ) SELECT 员工NC顺序码.NC编码, 离职a1.公司, 离职a1.姓名, 离职a1.证件号码, 离职a1.户籍地址, 离职a1.岗位分类, 离职a1.工龄核定起始日期, 离职a1.H2B时间, 离职a1.备注, 离职a1.进入集团日期, 离职a1.职务名称, 离职a1.职级名称, 离职a1.社保缴交地, 离职a1.档案编号 FROM 离职a1 INNER JOIN 员工NC顺序码 ON 离职a1.人员编码 = 员工NC顺序码.NC编码;"

s2 = "INSERT INTO 基本情况汇总表 ( NC编码, 公司, 姓名, 证件号码, 户籍地址, 岗位分类, 工龄核定起始日期, H2B时间, 备注, 进入集团日期, 职务名称, 职级名称, 社保缴交地, 档案编号 ) SELECT 员工NC顺序码.NC编码, 离职a2.公司, 离职a2.姓名, 离职a2.证件号码, 离职a2.户籍地址, 离职a2.岗位分类, 离职a2.工龄核定起始日期, 离职a2.H2B时间, 离职a2.备注, 离职a2.进入集团日期, 离职a2.职务名称, 离职a2.职级名称, 离职a2.社保缴交地, 离职a2.档案编号 FROM 离职a2 INNER JOIN 员工NC顺序码 ON 离职a2.人员编码 = 员工NC顺序码.NC编码;"

s3 = "INSERT INTO 基本情况汇总表 ( NC编码, 公司, 姓名, 证件号码, 户籍地址, 岗位分类, 工龄核定起始日期, H2B时间, 备注, 进入集团日期, 职务名称, 职级名称, 社保缴交地, 档案编号 ) SELECT 员工NC顺序码.NC编码, 离职a3.公司, 离职a3.姓名, 离职a3.证件号码, 离职a3.户籍地址, 离职a3.岗位分类, 离职a3.工龄核定起始日期, 离职a3.H2B时间, 离职a3.备注, 离职a3.进入集团日期, 离职a3.职务名称, 离职a3.职级名称, 离职a3.社保缴交地, 离职a3.档案编号 FROM 离职a3 INNER JOIN 员工NC顺序码 ON 离职a3.人员编码 = 员工NC顺序码.NC编码;"

s4 = "INSERT INTO 基本情况汇总表 ( NC编码, 公司, 姓名, 证件号码, 户籍地址, 岗位分类, 工龄核定起始日期, H2B时间, 备注, 进入集团日期, 职务名称, 职级名称, 社保缴交地, 档案编号 ) SELECT 员工NC顺序码.NC编码, 离职a4.公司, 离职a4.姓名, 离职a4.证件号码, 离职a4.户籍地址, 离职a4.岗位分类, 离职a4.工龄核定起始日期, 离职a4.H2B时间, 离职a4.备注, 离职a4.进入集团日期, 离职a4.职务名称, 离职a4.职级名称, 离职a4.社保缴交地, 离职a4.档案编号 FROM 离职a4 INNER JOIN 员工NC顺序码 ON 离职a4.人员编码 = 员工NC顺序码.NC编码;"

s5 = "INSERT INTO 基本情况汇总表 ( NC编码, 公司, 姓名, 证件号码, 户籍地址, 岗位分类, 工龄核定起始日期, H2B时间, 备注, 进入集团日期, 职务名称, 职级名称, 社保缴交地, 档案编号 ) SELECT 员工NC顺序码.NC编码, 离职a5.公司, 离职a5.姓名, 离职a5.证件号码, 离职a5.户籍地址, 离职a5.岗位分类, 离职a5.工龄核定起始日期, 离职a5.H2B时间, 离职a5.备注, 离职a5.进入集团日期, 离职a5.职务名称, 离职a5.职级名称, 离职a5.社保缴交地, 离职a5.档案编号 FROM 离职a5 INNER JOIN 员工NC顺序码 ON 离职a5.人员编码 = 员工NC顺序码.NC编码;"

s6 = "INSERT INTO 基本情况汇总表 ( NC编码, 公司, 姓名, 证件号码, 户籍地址, 岗位分类, 工龄核定起始日期, H2B时间, 备注, 进入集团日期, 职务名称, 职级名称, 社保缴交地, 档案编号 )  SELECT 员工NC顺序码.NC编码, 离职a6.公司, 离职a6.姓名, 离职a6.证件号码, 离职a6.户籍地址, 离职a6.岗位分类, 离职a6.工龄核定起始日期, 离职a6.H2B时间, 离职a6.备注, 离职a6.进入集团日期, 离职a6.职务名称, 离职a6.职级名称, 离职a6.社保缴交地, 离职a6.档案编号 FROM 离职a6 INNER JOIN 员工NC顺序码 ON 离职a6.人员编码 = 员工NC顺序码.NC编码;"

s7 = "INSERT INTO 基本情况汇总表 ( NC编码, 公司, 姓名, 证件号码, 户籍地址, 岗位分类, 工龄核定起始日期, H2B时间, 备注, 进入集团日期, 职务名称, 职级名称, 社保缴交地, 档案编号 ) SELECT 员工NC顺序码.NC编码, 离职a7.公司, 离职a7.姓名, 离职a7.证件号码, 离职a7.户籍地址, 离职a7.岗位分类, 离职a7.工龄核定起始日期, 离职a7.H2B时间, 离职a7.备注, 离职a7.进入集团日期, 离职a7.职务名称, 离职a7.职级名称, 离职a7.社保缴交地, 离职a7.档案编号 FROM 离职a7 INNER JOIN 员工NC顺序码 ON 离职a7.人员编码 = 员工NC顺序码.NC编码;"

s8 = "INSERT INTO 基本情况汇总表 ( NC编码, 公司, 姓名, 证件号码, 户籍地址, 岗位分类, 工龄核定起始日期, H2B时间, 备注, 进入集团日期, 职务名称, 职级名称, 社保缴交地, 档案编号 ) SELECT 员工NC顺序码.NC编码, 离职a8.公司, 离职a8.姓名, 离职a8.证件号码, 离职a8.户籍地址, 离职a8.岗位分类, 离职a8.工龄核定起始日期, 离职a8.H2B时间, 离职a8.备注, 离职a8.进入集团日期, 离职a8.职务名称, 离职a8.职级名称, 离职a8.社保缴交地, 离职a8.档案编号 FROM 离职a8 INNER JOIN 员工NC顺序码 ON 离职a8.人员编码 = 员工NC顺序码.NC编码;"

s9 = "INSERT INTO 基本情况汇总表 ( NC编码, 公司, 姓名, 证件号码, 户籍地址, 岗位分类, 工龄核定起始日期, H2B时间, 备注, 进入集团日期, 职务名称, 职级名称, 社保缴交地, 档案编号 ) SELECT 员工NC顺序码.NC编码, 离职a9.公司, 离职a9.姓名, 离职a9.证件号码, 离职a9.户籍地址, 离职a9.岗位分类, 离职a9.工龄核定起始日期, 离职a9.H2B时间, 离职a9.备注, 离职a9.进入集团日期, 离职a9.职务名称, 离职a9.职级名称, 离职a9.社保缴交地, 离职a9.档案编号 FROM 离职a9 INNER JOIN 员工NC顺序码 ON 离职a9.人员编码 = 员工NC顺序码.NC编码;"

s10 = "INSERT INTO 基本情况汇总表 ( NC编码, 公司, 姓名, 证件号码, 户籍地址, 岗位分类, 工龄核定起始日期, H2B时间, 备注, 进入集团日期, 职务名称, 职级名称, 社保缴交地, 档案编号 ) SELECT 员工NC顺序码.NC编码, 在职aa.公司, 在职aa.姓名, 在职aa.证件号码, 在职aa.户籍地址, 在职aa.岗位分类, 在职aa.工龄核定起始日期, 在职aa.H2B时间, 在职aa.备注, 在职aa.进入集团日期, 在职aa.职务名称, 在职aa.职级名称, 在职aa.社保缴交地, 在职aa.档案编号 FROM 在职aa INNER JOIN 员工NC顺序码 ON 在职aa.人员编码 = 员工NC顺序码.NC编码;"



DoCmd.RunSQL s0
DoCmd.RunSQL s1
DoCmd.RunSQL s2
DoCmd.RunSQL s3
DoCmd.RunSQL s4
DoCmd.RunSQL s5
DoCmd.RunSQL s6
DoCmd.RunSQL s7
DoCmd.RunSQL s8
DoCmd.RunSQL s9
DoCmd.RunSQL s10

End Sub

将Access表中的空字段值设置为0。

如果Access表中某一数字字段值为空,即Null,那么在对含有该字段的多个字段求和时,求合字段值也为Null。

此时需要对表中的Null值字段进行0值处理。

UPDATE t_labordispute SET 申请经济补偿金 =0 WHERE  IsNull(申请经济补偿金);

或者当字段类型为“计算”,用于计算的某一字段为Null时,则可用如下:

IIf( IsNull( [裁定经济补偿金] ) ,0, [裁定经济补偿金] ) +IIf( IsNull(  [裁定工资]) ,0, [裁定工资] ) +IIf( IsNull( [裁定加班工资]) ,0,   [裁定加班工资] ) +IIf( IsNull( [裁定法定加班]) ,0, [裁定法定加班]  ) +IIf( IsNull(  [裁定年休假] ) ,0,   [裁定年休假]  ) +IIf( IsNull(  [裁定无合同双倍工资]) ,0, [裁定无合同双倍工资]  ) +IIf( IsNull( [裁定生活费] ) ,0, [裁定生活费]  ) +IIf( IsNull(  [裁定工伤待遇]) ,0, [裁定工伤待遇]  ) +IIf( IsNull( [裁定赔偿金] ) ,0, [裁定赔偿金]  ) +IIf( IsNull(  [裁定社保费]) ,0, [裁定社保费]  ) +IIf( IsNull( [裁定失业损失] ) ,0, [裁定失业损失]  ) +IIf( IsNull( [裁定其他] ) ,0, [裁定其他]  ) 
在access的查询中,不可采用如下格式,需要“逐条”语句执行,不能采用如下格式执行一次执行多条语句。
这一点与sql环境不同。
UPDATE t_labordispute SET 备注 = null WHERE 备注='(null)';
UPDATE t_labordispute SET 备注 = null WHERE 备注='None';

如果更新某个字段空值为新的内容,需要:
UPDATE t_labordispute SET 备注 = '新内容' WHERE 备注 Isnull;


如果更新某个字段空值为新的内容,需要:
UPDATE t_labordispute SET 申请生育津贴 = 0 WHERE 申请生育津贴 Is null;

 

 

 

 

Access表同一记录多个字段取最大值(或最小值),存入新字段。

通过自建函数:Access VBA新建模块,如下:

Function Minimum(ParamArray FieldArray() As Variant)
' Declare the two local variables.
    Dim I As Integer
    Dim currentVal As Variant

    ' Set the variable currentVal equal to the array of values.
    If IsNull(FieldArray(0)) Then FieldArray(0) = 0
    currentVal = FieldArray(0)

    ' Cycle through each value from the row to find the smallest.
    For I = 0 To UBound(FieldArray)
        If IsNull(FieldArray(I)) Then FieldArray(I) = 0
        If FieldArray(I) < currentVal Then
            currentVal = FieldArray(I)
        End If
    Next I

    ' Return the minimum value found.
    If FieldArray(I) = 0 Then FieldArray(I) = Null
    Minimum = currentVal

End Function


Function Maximum(ParamArray FieldArray() As Variant)
' Declare the two local variables.
    Dim I As Integer
    Dim currentVal As Variant

    ' Set the variable currentVal equal to the array of values.
    If IsNull(FieldArray(0)) Then FieldArray(0) = 0
    currentVal = FieldArray(0)
    

    ' Cycle through each value from the row to find the largest.

    For I = 0 To UBound(FieldArray)
        If IsNull(FieldArray(I)) Then FieldArray(I) = 110
        If FieldArray(I) > currentVal Then
            currentVal = FieldArray(I)
        End If
    Next I

    ' Return the maximum value found.
    If currentVal = 110 Then currentVal = Null
    Maximum = currentVal

Access表中,新建字段类型为计算,调用自建函数:Maxmium、Minmium。

最大日期: maximum([t_labordispute].[仲裁举证截止日期],[t_labordispute].[开庭日期],[t_labordispute].[结束日期],[法院一审].[申请立案日期],[法院一审].[开庭日期],[法院一审].[判决日期])

--复制表结构为新的表
select * into NewTable from OldTable where 1=2

--复制表结构及内容到新的表
select * into newtable from oldtable
--复制表结构内的某些字段为新的表
select title,type,price,notes ok into NewTable2 from titles where 1=2

--复制表结构及内容到新的表,可以选择字段
select title,type,price,pub_id-price ok into NewTable2 from titles
您也可以这样,先复制表结构(可以选一些字段为新的表),再插入内容

--复制表结构内的某些字段为新的表
select title y1,type y2,price y3 into yongfa365 from titles where 1=2

--向新的表里添加数据
insert into yongfa365 (y1,y2,y3) select title,type,price from titles
可以把(select * from table)形成一个表。 

 

多表查询

SELECT t_labordispute.[员工姓名], t_labordispute.[档案号],t_labordispute.[裁判结果], t_labordispute.[是否选中], t_labordispute.[员工证号], t_labordispute.[申请经济补偿金], t_labordispute.[申请工资], t_labordispute.[申请效益奖], t_labordispute.[申请加班工资], t_labordispute.[申请法定加班], t_labordispute.[申请年休假], t_labordispute.[申请无合同双倍工资], t_labordispute.[申请生活费], t_labordispute.[申请工伤待遇], t_labordispute.[申请生育津贴], t_labordispute.[申请赔偿金], t_labordispute.[申请社保], t_labordispute.[申请失业金损失], t_labordispute.[申请其它], t_labordispute.[申请合计], t_labordispute.裁定合计, t_labordispute.仲裁庭外和解, 法院一审.裁定合计, 法院一审.一审庭后和解, 法院二审.裁定合计
FROM (t_labordispute LEFT JOIN 法院一审 ON t_labordispute.档案号 = 法院一审.同案码) LEFT JOIN 法院二审 ON t_labordispute.档案号 = 法院二审.同案码
where t_labordispute.申请日期 >= #2020/1/1# and t_labordispute.省份='河北省';

选中的表

SELECT t_labordispute.[档案号], t_labordispute.员工姓名, t_labordispute.[员工证号], t_labordispute.[裁判结果], t_labordispute.[申请日期], t_labordispute.[员工实际所在公司], t_labordispute.[申请经济补偿金], t_labordispute.[申请工资], t_labordispute.[申请效益奖], t_labordispute.[申请加班工资], t_labordispute.[申请法定加班], t_labordispute.[申请年休假], t_labordispute.[申请无合同双倍工资], t_labordispute.[申请生活费], t_labordispute.[申请工伤待遇], t_labordispute.[申请生育津贴], t_labordispute.[申请赔偿金], t_labordispute.[申请社保], t_labordispute.[申请失业金损失], t_labordispute.[申请其它], t_labordispute.[申请合计], t_labordispute.[申请附注], t_labordispute.[裁定经济补偿金], t_labordispute.[裁定工资], t_labordispute.[裁定生活费], t_labordispute.[裁定社保费], t_labordispute.[裁定生育津贴], t_labordispute.[裁定合计], t_labordispute.[仲裁庭外和解], t_labordispute.[预判结果]
FROM t_labordispute where 是否选中=true;
UPDATE t_labordispute SET 预判结果 = null WHERE 预判结果 IS NULL;
access里like的通配符不能用%,要用*
access里like的通配符用法是这样: 
“?”表示任何单一字符; “*”表示零个或多个字符; “#”表示任何一个数字 
例:UPDATE t_labordispute SET 裁判类别 = 'CC' WHERE 裁判结果   like 'C*';
语句:将裁判结果以C为首字母的记录,更改为裁判类别值为CC。
原来在SQL SERVER 里是用%%的,在ACCESS里是用**号的!
但如果在VS2005的TableAdapter里又要用%%


UPDATE t_labordispute SET 立案日期 = 申请日期  WHERE 裁判pp结果 like 'A*';
UPDATE t_labordispute SET 立案日期 = 申请日期  WHERE 立案日期 is null;

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值