vba
  • ms-access
  • access-vba
  • 2015-10-22 82 views 0 likes 
    0

    我需要一些帮助,这个代码,我不能得到现在好几个小时。访问VBA不会输入日期到日期字段

    我正在做一个数据库用于管理处理,在这里我需要一个新的上传文件的日期。

    If MsgBox("Mai dátummal mehet?", vbYesNo, "Verzió") = vbYes Then 
        db.Execute ("UPDATE Dokumentumok SET Verzió = Date() WHERE Jelölés='" & Me.Jelölés & "'") 
    Else 
        version = InputBox("Add meg a dátumot éééé.hh.nn.", "Verzió", Date) 
        version = Replace(version, ".", ". ") 
        If IsDate(version) Then 
         db.Execute ("UPDATE Dokumentumok SET Verzió ='" & CDate(version) & "' WHERE Jelölés='" & Me.Jelölés & "'") 
        Else 
         MsgBox "Rossz formátum, mentve mai dátummal" 
         db.Execute ("UPDATE Dokumentumok SET Verzió = Date() WHERE Jelölés='" & Me.Jelölés & "'") 
        End If 
    End If 
    

    首先MSGBOX询问是否去与今天的日期,如果是,则更新其工作只是正常的具体日期。 如果不是,inputbox要求输入日期。 我住在匈牙利,截止日期格式是YYYY.MM.DD.在这里,在默认情况下访问是YYYY。 MM。 DD。 - 它们之间的空间,不知道如果它的事项

    到目前为止,我已经尝试输入,有下列格式的可以说2015年10月20日:

    • 2015年10月20日。
    • 2015年10月20日
    • 20 .10.2015
    • 二○一五年十月二十日
    • 20/10/2015

    即使尝试使用模块中的所有设置为手动的小代码更新表中的日期字段,通过isdate()检查 每个类型都通过了日期检查,但仍然是代码运行和日期字段保持空或我得到错误参数太少,预计1如果我尝试与“\”而不是“”。

    version = "2015.10.20." 
    version = Mid(version, 6, 6) & Left(version, 4) 
    version = Replace(version, ".", "/") 
    If IsDate(version) Then 
    db.Execute ("UPDATE Dokumentumok SET Verzió = #" & version & "# WHERE Jelölés=E2") 
    End If 
    

    这一个在查询表达式'2015中给出错误缺少运算符。 10. 20.'

    version = "2015. 10. 20. " 
        If IsDate(CDate(version)) Then 
        db.Execute ("UPDATE Dokumentumok SET Verzió = " & CDate(version) & " WHERE Jelölés=E2") 
    
    End If 
    

    查询表达式#2015中的这一个日期语法错误。 10. 20.'

    db.Execute ("UPDATE Dokumentumok SET Verzió = #" & CDate(version) & "# WHERE Jelölés=E2") 
    

    我已经试过“之间的值或##“”,##,日期变量,格式化字符串变量等

    伙计们之间的”变量的多种组合,我似乎无法使其工作我自己需要帮助。

    由于提前, 克里斯托夫

    +0

    你有'昏暗版本date'?并且不能使用'format()'来更改日期? – LiamH

    +0

    如果您的标准是'YYYY.MM.DD',那么我认为您的日期不需要空格。不过,我只是在美国试过这个,并不在意这些空间。尝试添加此行,看看会发生什么:Debug.Print Format(Version,“mm.dd.yyyy”) –

    +0

    它可能是字符串中的最后一个点吗?日期通常为“2015.10.20”,而不是“2015.10.20”。在提供的代码片段中,将最后一点替换为导致“2015/10/20 /”的最后一点,该日期不是日期... – Johanness

    回答

    0

    的日期格式,所有的(我希望)国际Access版本明白,是ISO格式YYYY-MM-DD。

    和日期分隔符是#

    与格式功能

    所以:

    "UPDATE Dokumentumok SET Verzió = #" & Format(version, "yyyy-mm-dd") & "#" 
    
    +0

    谢谢安德烈,这个版本的格式化工作。有趣的是它仍然显示为yyyy。毫米。 DD。在数据库中。 –

    +0

    @KristofMolnar:这很正常 - 日期显示默认情况下始终是本地化的格式。内部存储不受UPDATE格式的影响,在数据库中它始终是Access日期。 – Andre

    相关问题