vba
  • ms-access
  • access-vba
  • 2015-10-22 84 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

    相關問題