• ベストアンサー

VB初心者です。

VB始めたばかりでいつもお世話になっております。 Dim tmpymd As String tmpymd = "20060205" tmpymd = DateAdd("d", 1, CDate(tmpymd)) とすると型が違うとエラーが出ます。 tmpymdの日付に1日加算したいのですが。。。 tmpymdを型変換したかったのですが・・・。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#22222
noname#22222
回答No.2

? format(dateadd("D", 1, cdate(format("20060205", "@@@@/@@/@@"))), "yyyymmdd") 20060206

rariko
質問者

お礼

出来ました。どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.1

tmpymdの値の形式がおかしいからだと思います。 "2006/02/05"だとどうでしょうか? ちなみに、IsDateで検査すれば確実だと思います。 If IsDate(tmpymd) Then 日付として正しい場合True、正しくなければFalse

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 日付書式のString型からData型への変換

    引数での日付データを加工して、変換させたいのですがエラー("String型からData型への変換は無効です。")がでます。 対処方法をアドバイスいただけないでしょうか? コードを下記に示します。 VS 2010を使用しています。 Dim From As Long Dim Year As Integer Dim Month As Integer Dim Day As Integer From = CLng(Format(DateAdd("d", 1, DateAdd("m", -1, CDate(CStr(Year) & "/" & CStr(Month) & "/" & CStr(Day)))), "yyyyMMdd"))

  • VB2010でのSQL日付フォーマット表記変更

    VB2010Expressを使用しています。 VBにてあるCSVファイルの内容をmdbファイルに移行するプログラムを作成しています DateTimePickerの日付を条件にしているんですがCSVの日付表記が『yyyymmdd』になっていて下記のコードでは『 (Me.Date日付.Text).ToString("yyyyMMdd")』の部分で『'String' から 'System.IFormatProvider' への変換時にランタイム エラーが発生する可能性があります。』とエラーが出ます。 自宅PCでは『(Me.Date日付.Text).ToString("yyyyMMdd")』を『DateAdd("d", 0, Me.Date健診日.Text).ToString("yyyyMMdd")』にしたらエラーなく動いたのですが、今日職場のPCで検証したら『型が合いません的なエラーが出てしまいます。(日付部分でのエラーみたいなのですが職場でのエラーをメモし忘れました、スイマセン) 日付のフォーマット変更そしてPCの違いによるエラーの発生原因についてご教授お願いします。 Try Dim DT As New DataTable '===============CSVからクエリ=============== Using OleCn As New System.Data.OleDb.OleDbConnection OleCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FolderPath & _ ";Extended Properties=""Text;HDR=YES;IMEX=1;FMT=Delimited""" Dim SQL As String = "" SQL = "SELECT * FROM " + CSVFileName + " WHERE 日付 BETWEEN " + DateAdd("d", -1, Me.Date日付.Text).ToString("yyyyMMdd") + " AND " + (Me.Date日付.Text).ToString("yyyyMMdd") Using DA As System.Data.OleDb.OleDbDataAdapter = _ New System.Data.OleDb.OleDbDataAdapter(SQL, OleCn) DT.Clear() DA.Fill(DT) End Using End Using '===============CSV-importへの登録=============== コード省略 Catch ex As Exception MessageBox.Show(ex.ToString, "例外発生") Exit Sub End Try

  • VB6のTYPE文をVB.NETのStructureに変えるとき

    VB6のTYPE文をVB.NETのStructureに変えるとき 下記VB6のコードをVB.NETのStructureに変える場合 Type kouzou1 i As Integer j As Integer a As String * 20 b As String * 50 End Type を下記にしてみたのですが *20,*50のところは、どのように表現するのでしょうか。 Structure kouzou1 Dim i As Integer Dim j As Integer Dim a As String * 20 <- ステートメントの終わりを示してくださいのエラーになる。 Dim b As String * 50 <- ステートメントの終わりを示してくださいのエラーになる。 End Structure お教え下さい。

  • VB6.0 →VB2005 のアップグレードでエラー表示

    VB6.0の標準モジュールでは Private Type typset a As String b As String c As Integer End Type Public make() As typset と記述してエラーもなく正常なのですが、VB2005にアップグレードしたときに、 Option Strict Off Option Explicit On Module Module1 Private Structure typset Dim a As String Dim b As String Dim c As Integer End Structure Public make() As typset←▼エラー▼            End Module 【エラー内容】 'make' は、module 'Module1' をとおして型 'typset' を namespace 'WindowsApplication1' で公開することはできません。 structure部をPublicなどにしてもエラーは消えますが、参照先に影響が出てしまいます。 根本的な解決方法が分かりません。 教えていただけないでしょうか?

  • VB.NETで、配列をテーブルに変換する。

    VB.NETで、一次元配列string()にあるデータを、DataTableに変換 したいのですが、「型'String'の値を'System,Data,DataTable'に変換できません。」 と、エラーが発生してしまいます。 s1に、配列データが入っています。 Dim dt As DataTable Dim cnt As Integer Dim i As Integer dt = New DataTable count = s1.Length For i = 0 To cnt - 1 dt = CType(s1(i), DataTable) Next 解決方法が見つからず、行き詰っております。 宜しくお願い致します。

  • vb 日付の判断

    こんにちは。vb2005で日付の判断をしたいのですが、 スマートな方法がわかりません。 Dim y() as string ~ dim y(0) には 20081231 が入る ~ Dim wk As String = y(i).Insert(4, "/") wk = wk.Insert(7, "/") If IsDate(wk) Then ひづけ有効な場合 処理 とりあえずこれで、日付として成立するかを判断しているのですが、 もうすこしスマートな方法はないでしょうか?

  • VB2005 初心者です。

    文書中の番号を振りなおしたいのですが、やり方がよく分かりません。 Dim a As String=textbox1.text Dim b As Integer=a.IndexOf("【作品番号") Dim c As String=a.Substring(b,5) Dim d As Integer=c.Length Do While b <> -1 b=a.Indexof("【作品番号",b+1) d=d+5 Loop Dim f As Integer=Cstr((d-5)/5) Dim g As Integer=0 g=g+1 For h As Integer=1 To f Dim i As String=textbox1.text.Replace("【作品番号","【作品番号" & h & "】") Next 最初のループまでで文章中に【作品番号*】がいくつあるかを調べて、(f回)その回数文だけまたループを回して番号を振りたいのですが、何もおきません。 本当に初心者なので、皆さんが見たらありえない構文かも知れませんが、ご教授願います。。。 ちなみに、作品番号は2桁3桁にもなることもあり、全角の数字にしたいのです。 よろしくお願い致します。

  • postgreSQLとVB2005接続でのデータ取得方法

    postgreSQL8.2.3(linux)とVB2005 expressを接続しようとしているのですがエラーが表示されうまくデータを取得できず困っております。どのようにVBをプログラムすればよいのか教えていただけるとうれしいです。。。。 現在のVBにいれているプログラムですが Dim strConnect As String Dim adoConnection As Object Dim ans As Object strConnect = "DSN=*****; UID=*****; PWD=*****" adoConnection = CreateObject("ADODB.Connection") adoConnection.Open(strConnect) ans=adoConnection.execute("select name from table;") Do While Not ans.EOF Debug.Print(ans.fields("name")) ans.MoveNext() 実行するとdebug.print実行時にエラー表示され 型 'Field' から型 'String' への変換は無効です。 となります。postgresはpgadminにて接続動作確認できています。 ご回答のほどよろしくお願いします。

  • データ型変換

    String型のデータをInteger型の変数に入れたいのでが・・・。 '変数の宣言 Dim DataTable(2, 5) As String Dim made As Integer 'データ型変換 made = CInt(DataTable(1, 0)) このようにしたのですが、実行すると 『実行時エラー '13'  型が一致しません』 と表示され、デバックしてみるとココ↓ made = CInt(DataTable(1, 0)) が黄色くなります。 どうしたら上手く型変換ができるのでしょうか? ちなみに、VB6.0です。

  • VB6のメモリ解放に関して

    お世話になります VB6のメモリ解放に関して、以下を参考に下記のコードで試したのですが、 コンパイルエラーで「配列には割り当てられません」となってしまいます。 http://okwave.jp/qa/q3372573.html 違いは宣言の型がStringかLongしかないと思うのですが、 なにが悪いのか教えていただけないでしょうか ******* 以下 ソース Dim wProcDat() As Long ReDim wProcDat(1 To 1000, 1 To 768) 中略 Set wProcDat = Nothing