Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

access 通过sql语句查询,无法生成自动编号,无法添加日期字段

tigerterrorist  发表于:2020-04-11 21:48:09  
复制

菜鸟一枚,代码如下,请问各位大虾以下问题:

1、自动编号生成不了

2、日期无法添加到表中

3、计算两个日期之间的天数差结果不对

点击下载此附件


代码如下:


Private Sub Command16_Click()

Dim GongSiMingCheng As String
Dim ZhuCheRiQi As Date
Dim DaoQiRiQi As Date
Dim LianXiFangShi As String

Dim YongHuMing As String


YongHuMing = "13593688"

GongSiMingCheng = "测试工程程有限公司"
ZhuCheRiQi = Date
LianXiFangShi = "134159323"
LianXiRen = "陈生"
JiHuoYouXiang = "315977@qq.com"
DaoQiRiQi = #4/15/2020#
ShengYuTianShu = DateDiff("d", Format(ZhuCheRiQi, "yyyy-mm-01"), Format(DateAdd("m", -1, DaoQiRiQi), "yyyy-mm-01"))
If TableExists2(YongHuMing) = False Then
Dim SQL As String
     SQL = "CREATE TABLE " & YongHuMing & "(自动编号 long ,公司名称 text(35),注册日期 date,联系方式 string(12),联系人 string(5),激活邮箱 string(25),到期日期 date,剩余天数 Integer)"
    DoCmd.RunSQL SQL
 Else
 End If
    SQL = "insert into " & YongHuMing & "(自动编号,公司名称,注册日期,联系方式,联系人,激活邮箱,到期日期,剩余天数) values('" & AutoId & "' ,'" & GongSiMingCheng & "','" & ZhuCheRiQi & "','" & LianXiFangShi & "','" & LianXiRen & "','" & JiHuoYouXiang & "','" & DaoQiRiQi & "','" & ShengYuTianShu & "')"
   DoCmd.RunSQL SQL
End Sub


Public Function TableExists2(BiaoMing As String) As Boolean
    Dim accTbl As Object
    TableExists2 = False ' 默认值为不存在,除非表被找到。
    ' 使用CurrentDb.TableDefs集合来获取已有的表。
    ' 依次通过已有的TableDefs来获取表名。
    For Each accTbl In CurrentDb.TableDefs
          If BiaoMing = accTbl.Name Then
            TableExists2 = True ' 找到这个表
            Exit For ' 跳出循环
        End If
    Next accTbl
End Function

 

Top
西出阳关无故人 发表于:2020-04-12 21:01:26

1,AutoId 为空,无法插入到数值字段;

2,SQL =...语句中的日期/文本/数值的包围符号有问题:你全部按照文本进行包围了.→数值没有包围符号,文本的包围符号为',日期的包围符号为#.

3,两个日期之间的相差天数计算没有问题.

DateDiff(a,b,c)函数是计算c-b的差值,并按照a参数折算成天/月/周/年等结果.

DateAdd(a, b, c)函数是计算从c日期,增加b单位(单位由a参数指定,天/月/周/年等)后的日期,你的a为"m",表示月,b=-1,c=#4/15/2020# ,表示从c往后推1个月到#3/15/2020#,注意b参数对应的日期的数轴方向,负数表示已经过去,正数表示将来.



总记录:1篇  页次:1/1 9 1 :