由於公司的
資料表中的欄位
年月格式是用string
例如:200512代表2005年12月
現在遇到一個問題
vb6程式碼對於字串如何得知下個月呢?
如:200512的下個月是200601
請問:如何用vb6寫成函數
以後直接呼叫就可以了
麻煩仔細說明一下
因為對自定函數非常不熟
謝謝
2006-07-19 17:22:24 · 2 個解答 · 發問者 strike 5 in 電腦與網際網路 ➔ 程式設計
謝謝兩位的解答
我都很喜歡
由於不知如何選擇
交付投票
謝謝
2006-07-20 02:44:42 · update #1
Private Sub Command1_Click() Dim S As String, N As Integer '計算200512下個月之值 S = "200512" MsgBox QryDate(S) '計算200512上個月之值 N = -1 MsgBox QryDate(S, N)End SubFunction QryDate(nDate As String, Optional ByVal N As Integer = 1) As String Dim D As Date On Error GoTo Er '先把字串利用DateSerial函數轉成日期 D = DateSerial(Left$(nDate, 4), Right$(nDate, 2), 1) '利用DateAdd函數計算 D = DateAdd("m", N, D) '再用Format函數轉成字串 QryDate = Format(D, "yyyyMM") Exit Function '發生錯誤時警告Er: MsgBox "錯誤代碼:" & Err & vbCrLf & "錯誤說明:" & Error, vbCriticalEnd Function
2006-07-19 21:37:41 · answer #1 · answered by W.J.S. 7 · 0⤊ 0⤋
'changemonth(變數1,變數2)
'變數1 : 日期字串(西元年4位+月2位)
'變數2 : +n:往後n個月
' -n:往前n個月
'傳回值 : 日期字串(西元年4位+月2位)
Public Function ChangeMonth(ByVal strMon As String, ByVal Act As Integer) As String
Dim YYYY, MM As Integer
YYYY = Val(Left(strMon, 4))
MM = Val(Right(strMon, 2)) + Act
'判斷是否月份>12
Do While MM > 12
YYYY = YYYY + 1
MM = MM - 12
Loop
'判斷是否月份<1
Do While MM < 1
YYYY = YYYY - 1
MM = MM + 12
Loop
'傳回值
ChangeMonth = Trim(Str(YYYY * 100 + MM))
End Function
2006-07-19 18:04:35 · answer #2 · answered by ? 4 · 0⤊ 0⤋