2016-04-11 13 views
0

ERPシステムからフォーマットしたいフィールドを介して参照しようとしている値の変換に問題があります。変数が整数または文字列に設定されていても、文字列として引き出されているため、すべての値を変換できません。変数を別の方法で定義すると、このエラーが発生するのは何ですか?文字列「M」から「整数」への変換が無効です

Public Class Class1 
Inherits erp.Rule 
Public Overrides Function Execute() As erp.RuleResult 
Dim Result As New RuleResult 
    Try 
     Dim date_recieved As Date 
     Dim month As String 
     Dim period As String 
     Dim Year1 As String 
     Dim Year As String 
date_recieved = Data.Fields.GetFieldByAlias("date_received").FieldValue 
     month = Format(date_recieved, "M").ToString 
     Year = Data.Fields.GetFieldByAlias("yearAR").FieldValue 
     period = Data.Fields.GetFieldByAlias("periodAR").FieldValue 

     If period = month Then 
      If Year = Year1 Then 
       Exit Function 
      Else 
       MessageBox.Show("Date received does not match year", "Invalid Input") 
      End If 

     Else 
      MessageBox.Show("Date received does not match period", "Invalid Input") 
     End If 

    Catch ex As Exception 
     Result.Message = ex.Message 
    End Try 
    Result.Success = True 
    Return Result 
    End Function 

答えて

0

Formatすることは、あなたがデータ型に機能を提供するデータ型を変換しようとしている「M」を渡すことによって、文字列パラメータを受け付けません受け入れ、文字列が暗黙のうちに、エラーが発生した整数にキャストしていないので、ここで.ToString()

の引数は、すべての可能なフォーマットを説明するMSDNへのリンクであるとして、あなたは自分の書式設定のルールを使用して日付変数とそれに続く.ToString()メソッドを使用して、文字列のさまざまなフォーマットにDateタイプをフォーマットする

オプティオns:https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

+0

この場合、月を取得するためにdate_recievedをどのようにフォーマットできますか、それとも不可能なのですか?私はdate_receivedから派生した私の月の変数に期間(月)を参照する必要があります。 –

+0

@ChristopherBachman説明と書式設定のためのドキュメントへのリンクで更新された答え:) –

関連する問題