English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

由於公司的
資料表中的欄位
年月格式是用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

2 個解答

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

fedest.com, questions and answers