2017-01-26 13 views
0

以下のコードは、私のCrystal Reportの選択式を設定するコードです。vb.netの日付値をフォーマットしても間違った値が返される

Dim dateTo As Date 
dateTo = dtpCRTo.Value.ToShortDateString 
dateTo = Format(dateTo, "dd/MM/yyyy") 

If cmbCRSupplier.Value = "" Then 
    selectionFormula = "{Sales_Headers.Stage} = '6' AND {Sales_Lines.PaymentDate} <= #" & dateTo & "#" 

私は取得しています問題は、私がテストしていたデータが細かい6のSales_Headers.Stage値、および30/11/2016のSales_Lines.PaymentDate値を持っている(英国では、dd/MM/yyyy)ただし、私が使用しているDateTimePickerが2016年12月11日に表示されていても、dateToの値はMM/dd/yyyyフォーマットの12/11/2016として返されますので、レポートにはデータが表示されません。日付。

なぜ私はフォーマットしていますが、この形式で日付が返されますか?私は書式設定のセクションを入れて、選択式でdtpCRTo.Value.ToShortDateStringを持っていた前

EDIT

はまた、それはまだ同じことをしました。日の部分が13未満である、それは月のように、その一部を扱いますが、日の部分が13以上になると正常に動作します任意の日付の

...

EDIT 2:

次のように私が今持っているクエリは次のとおりです。

Dim dateTo As Date = dtpCRTo.Value.AddDays(1).Date 
    dateTo = Format(dateTo, "dd/MM/yyyy") 
    If cmbCRSupplier.Value = "" Then 
    selectionFormula = "{Sales_Headers.Stage} = '6' AND {Sales_Lines.PaymentDate} < #" & dateTo & "#" 

これは、各月の最終日を選択する場合を除いて、すべての日付のために動作します。 1月31日を選択した場合、dateToの値は02/01/2017(2月2日)になり、2月1日の数式で処理されます。これを回避する方法はありますか?

+0

「PaymentDate」がテキスト列でない場合、日付には書式がないため、書式は関係ありません。 – Plutonix

+0

@Plutonixいいえ、 'PaymentDate'は' Date/Time'フォーマットですが、フォーマットビットを追加する前でさえまだデータを表示していませんでした – Harambe

+0

'DateTime' *タイプ*は常に日付と時刻の部分を持っています'<='を使用して、時間要素に除外したくありません。これを試してください: 'dateTo = dtpCRTo.Value.AddDays(1).Date'これは、その日付の任意の時刻を含むすべての日付を含めるべきです。 – Plutonix

答えて

0

フォーマットのプロパティ:背後に

1. DatePicker > Properties > CustomFormat > (Enter format you want here) 
2. Properties > Format > Custom 

コード:

Dim dateFormat As String 
dt.Format = DateTimePickerFormat.Custom 
dt.CustomFormat = "dd/MM/yyyy" 
dateFormat = dt.Text 

そのどちらか、あなたは、プロパティまたはコードビハインドでフォーマットしたいです。

+0

同じ問題@ Plutonixの提案から最新の編集を取得しています...日付ピッカーで月の最初の日を選択すると、まだMM/ddが数式に入れられているので、ない – Harambe

関連する問題