• 締切済み

【Access2000】日付型を文字列型に変換するには?

Dim exlfilename As Strings exlfilename = format([forms]![form]![日付],yyyymm) フォームに入力する形式が2008/09となっているので 2008/09→200809としたいんですが上手くいきません。 どのように書けば良いでしょうか。 よろしくお願いします。

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

> exlfilename = format([forms]![form]![日付],yyyymm) もしかして exlfilename = format([forms]![form]![日付],"yyyymm") コンパイルエラーが出てるならですが。 yyyymmがString型変数という可能性もあるか。

nealwOOfer
質問者

お礼

多分ですがwindowsのファイル名に"/"が使えないので エラーが出てるんだと思うんですがどうでしょう? コンパイルエラーは出ていません。 exlfilenameにカーソルを合わせると"2008/09"となっています。 VBA初心者のため分かりづらかったらすいません。 よろしくお願いします。

nealwOOfer
質問者

補足

自己解決しました。 回答有難うございました。

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

関連するQ&A

  • 日付型の文字列への変換 VB2008

    VB2008を使っています。 日付型のデータがあり、それを文字列にしようと思っています。 私がごっちゃまぜになっているのは、以下の3つです。 (1) Foamt(値, 書式) (2) Strings.Foamt(値, 書式) (3) String.Format(書式, 値) Option Strict On Option Infer Off Dim d As Date Dim s As String d = Date.Parse("2009/07/30") s = Format(d, "yy/mmm/d") '(1)の場合 とすると、 sは "09/Jly/30"と思っていましたが "09/00/30"となりました。 (Format) http://www.red.oit-net.jp/tatsuya/vb/date.htm 何が駄目なのでしょうか? (1)、(2)、(3)でそれぞれ 09/Jly/30と表示させたいのですが、 ご存知の方教えてください。 また、(1)~(3)は何が違い、VB2008では何を使うのが一番よいのでしょうか?

  • ACCESS フォームで入力した日付をクエリで読み

    ACCESS フォームで入力した日付をクエリで読み替えたい ACCESS フォームで入力した日付をクエリで使用しているテーブルの書式に変換したい フォーム テキスト名:日付にyyyymmdd で入力します クエリ テキスト名:日付はパラメータとして使用しています クエリ内で使用しているテーブルの日付書式は 日付:yyyy/mm/ddです パラメータは 「日付始」と「日付終」の2箇所のテキストに入力されたデータを使用しています。以下がパラメータです。 Between [Forms]![フォーム]![日付始] and [Forms]![フォーム]![日付終] フォームのテキストボックスにyyyymmddと入力してもクエリでエラーが出ることない パラメータを日付に設定したいのですがどうしたらよいでしょうか? ちなみに、以下の式を入れたらエラーです。 Between CDate(Format([Forms]![フォーム]![日付始],"yyyy/mm/dd")) and CDate(Format([Forms]![フォーム]![日付始],"yyyy/mm/dd")) と入力しましたところ、、、、「式が複雑すぎるか、、、」のエラーメッセージが出てしまいました。 どなたか助けてください。お願い致します。

  • 日付の変換

    画面でYYMM形式で入力した日付を、内部でYYYYMM形式に変更したいです。 例) 0706→200706 そういうプログラムを組むのではなく、一発で簡単に変換したいのですが、 何か良い方法はありませんでしょうか? (oracle関数等で実現出来たりするんでしょうか?) 宜しくお願いします。

  • ACCESS97のモジュールで 日付の計算をしたい

    以前の例題を検索したのですが 改めて質問します。 ACCESS97のモジュールで 日付の計算をしたいのです。 例えば ある日付を入力すれば、その2週間後の日付を取得したいのです。  テキストボックス "日付"で入力するとします Dim Sdate As Date  Dim Edate As Date Sdate = Format(Me.日付, "yy/mm/dd") Edate = Format(Sdate+14, "yy/mm/dd") ← ではエラーになります。 Q どうすればいいのでしょうか?

  • Accessで日付を抽出するパラメータを設定したい

    Accessのクエリで日付に対して与えているパラメータがあります。 パラメータで指定したいデータはフォームのテキストに入力した日の23:59:59 以降の日付を抽出したい。 入力:数値8桁(yyyymmdd)で行う 抽出先テーブルのデータ:yyyy/mm/dd hh:mm:ss 現在以下のパラメータを日付に対して与えると「式が複雑すぎます、、、」と注意されてしまいます。 指定日の23:59:59を抽出範囲として指定するのはどうしたらよいでしょうか? 入力値の変換も含めて、以下のパラメータを入れています。 「+"23:59:59"」をとればエラーは出ません。 <=IIF(Len([Forms]![フォーム名]![日付])=8,CDate(Format([Forms]![フォーム名]![日付],"@@@@/@@/@@")),#9999/1/01#)+"23:59:59" どなたか、お助け下さい。よろしくお願い致します。

  • EXCELでいうシリアル値をACCESSで出したい

    質問タイトルの通りです。VBAでFORM中の2つの日付を比較し、処理を分岐させたいのです。 自分なりに作っては見たのですが、ちゃんと動きません。どこが悪いんでしょう。 ' Dim hiduke As Integer: hiduke = CInt(IsDate(Forms![F_売上伝票]![日付])) ' Dim open_date As Integer: open_date = CInt(CDate("#2003 / 5 / 5#")) ' If hiduke <= open_date Then '正しい日付が入っていない場合には、 ' Forms![F_売上伝票]![入力日] = Date ' MsgBox "OPEN前です", vbInformation ' End If

  • Access VBA 日付で抽出できない?

    次の質問にお答えいただけませんか。 フォームで抽出条件を入力しテーブルから抽出をするとき Dim db As DAO.Database Dim rs As DAO.Recordset Dim mySQL As String Set db = CurrentDb() mySQL = "SELECT * FROM T_明細 " _ & "WHERE 顧客ID = " & CStr(Me!txtKey) & ";" Set rs = db.OpenRecordset(mySQL, dbOpenDynaset) 上記のような記述をしました。 テーブル名:T_明細   フィールド:顧客ID  日付 金額  フォームの抽出条件入力テキストボックス:txtKey このとき顧客IDでの抽出は問題なく出来ましたが "WHERE 顧客ID = を "WHERE 日付 = に変更して日付で抽出をしたいのですがうまくいきません。 テーブルの日付フィールドは 書式をgee-mm-dd 定型入力を>L99\-99\-99;0;# で書き込みました。 フォームのtxtKeyテキストボックスのプロパティも書式をgee-mm-dd 定型入力を>L99\-99\-99;0;#に設定してあります。 このようなときは mySQL = "SELECT * FROM T_明細 " _ & "WHERE 日付 = " & CStr(Me!txtKey) & ";" の、記述を何か変更しないといけないような気もしますが 対処の方法を教えていただけませんか。

  • ★VBスクリプトで日付関数をつかったもので困っております★

    VB Scriptに詳しい方がいらっしゃいましたらお尋ねします。日付関数で取得したものをソースに含めることは可能でしょうか? 日付計算をして出したもの(yyyymm)★印と★印の間に代入したいのですがうまく出来ません 初歩の初歩かもしれませんがやり方かまちがっていますでしょうか? 教えて下さい お願いします。 Dim oLogQuery Dim oEVTInputFormat Dim oCSVOutputFormat Dim strQuery Dim b Dim yyyymm b=DateAdd("M",-1,Now) yyyymm=Year(b)*100+Month(b) Set oLogQuery = CreateObject("MSUtil.LogQuery") ' 入力形式オブジェクトを作成します。 Set oEVTInputFormat = CreateObject("MSUtil.LogQuery.EventLogInputFormat") oEVTInputFormat.direction = "BW" ' 出力形式オブジェクトを作成します。 Set oCSVOutputFormat = CreateObject("MSUtil.LogQuery.CSVOutputFormat") oCSVOutputFormat.tabs = TRUE ' クエリ テキストを作成します。 strQuery = "SELECT TimeGenerated, EventID INTO C:\output%★yyyymm★%.csv FROM System" strQuery = strQuery & " WHERE SourceName = 'Application Popup'" ' クエリを実行します。 oLogQuery.ExecuteBatch strQuery, oEVTInputFormat, oCSVOutputFormat

  • 文字列の保存に関して

    質問です。 保存と共有方法についてお聞きしします。私はいつもフォーム内では、 プログラム内で生成した文字列(例:テストhogehoge)を Dim hoge as string ------------------------------ Private Sub CheckBox4_Click(sender As Object, e As EventArgs) Handles CheckBox4.Click Dim Random As .... ←で生成した「テストhogehoge」 hoge = random end sub ------------------------------ と宣言しておいて、 生成された時に hoge = randam(生成した宣言) と保存して、 ソフトが起動中に、いつでも「テストhogehoge」をhogeという場所に 保存しているのですが、起動時にform1.vbで「テストhogehoge」を生成した時に 別フォーム(例: form2.vb)に dim hoge as string に文字列を 保存したいのですが、どうすればいいでしょうか? form2.hoge = random とやっても Null扱いになってしまい、困ってます。 またソフトウェア上での上記みたいな全てのフォームで 共有出来る方法があったら教えて下さい。

  • ACCESS 2003の条件分岐について教えて頂けないでしょうか?

    access2003を勉強中です。 先週1週間かけても解決できないことがありまして、どなたか教えて頂けないでしょうか。 内容は 会社で使用する勤務表に関してです。 ユーザー名(コンボボックス)、日付(カレンダーコントロール)、 出社時間(テキストボックス)、退社時間(テキストボックス 、作業内容(テキストボックス)をユーザーが入力し「登録」 コマンドボタンのイベントで入力した内容を、勤務表テーブルに 反映させたいのです。 その時に同じユーザーの同じ日付を2件入力させないようにしたいので フォームに入力された内容からユーザー名と日付によって、 同じ内容が勤務表テーブルに無ければinsert、有ればupdateと 条件分岐をしたいのです。 しかし、 Public Sub kinmu() Dim mmrs As ADODB.Recordset Dim mmcn As ADODB.Connection Set mmrs = New ADODB.Recordset Set mmcn = Application.CurrentProject.Connection mmrs.Open "勤務表", mmcn, adOpenKeyset, adLockOptimistic mmrs.MoveFirst If DCount("[ユーザー名] & [日]", "[勤務表]", "[ユーザー名]=[Forms]![フォーム1]![コンボ56]" & _ "and[日]=[Forms]![フォーム1]![テキスト88]") = 0 Then mmcn.Execute "INSERT INTO 勤務表 ([ユーザー名],[日],[出社],[退社],[作業内容]) VALUES ([Forms]![フォーム1]![コンボ56],[Forms]![フォーム1]![テキスト88],[Forms]![フォーム1]![テキスト8],[Forms]![フォーム1]![テキスト17],[Forms]![フォーム1]![テキスト28]);" Else mmcn.Execute "UPDATE 勤務表 SET (ユーザー名=[Forms]![フォーム1]![コンボ56],日=[Forms]![フォーム1]![テキスト88],出社=[Forms]![フォーム1]![テキスト8],退社=[Forms]![フォーム1]![テキスト17],作業内容=[Forms]![フォーム1]![テキスト28] where [ユーザー名]=[Forms]![フォーム1]![コンボ56] and [日]=[Forms]![フォーム1]![テキスト88]);" End If として、「登録」コマンドボタンのイベントとしてCallキーワードによって呼び出そうとしているのですが、うまくいきません。 最初はDCount関数で件数を求め、それを変数に入れる。 IIF関数による分岐。などいろいろ試してはいたのですが、、、。 どなたか教えて下さい。よろしくお願いします。

専門家に質問してみよう