• 締切済み

コントロール値をフォルダ名にしたフォルダを作成できません。

access2000を使用している初級者です。 Mkdir を使用して、フォルダを作成することまではできましたが、 コントロール値フォルダ名として、テーブルのデータに一つ一つ対応したフォルダを作成しようと思いましたがうまくいきません。  そもそも、Mkdirではそのような作業は不可能なのでしょうか。 そうだとすれば他の方法があったら教えていただければ幸いです。

みんなの回答

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

MkDirというコマンド自体知りませんでしたが、サンプルを作成して確認してみたところ、 テーブルのデータに基づいてフォルダを作成することができました。 ・・・憶測ですが、親フォルダを指定し忘れたために、フォルダが作成できなかった、 ということはないでしょうか。 以下は、下記コントロールを持つフォームで、「テキスト1」のデータに基づいて フォルダを作成するコードです。  ・「テキスト1」   テーブルのデータを表示するテキストボックス  ・「親フォルダ」   フォルダを作るドライブ/フォルダを指定するテキストボックス   (「c:\」等を入力。なお、テーブルのデータが「c:\」等から始まっているなら    「Call MkDir(StrFolder)」は「Call MkDir(テキスト1)」で構いません)  ・「フォルダ作成」   コードを実行するためのコマンドボタン '~~~~~上記コマンドボタンのクリック時イベントに以下を貼り付け~~~~~ Private Sub フォルダ作成_Click() On Error GoTo エラー処理 Dim StrFolder As String 'メッセージでキャンセルを選択した場合は中止 If MsgBox("フォルダを作成します。", vbOKCancel, "確認") = vbCancel Then GoTo 終了処理 '先頭レコードに移動 DoCmd.GoToRecord , , acFirst 'レコードがなくなるまでループ処理 Do Until Me.NewRecord '「テキスト1」テキストボックスに文字列が保存されている場合はフォルダを作成 If Nz(テキスト1, "") <> "" Then StrFolder = 親フォルダ & テキスト1 Call MkDir(StrFolder) End If '次のレコードに移動 DoCmd.GoToRecord , , acNext Loop MsgBox "終了しました。" 終了処理: Exit Sub エラー処理: MsgBox Err & ":" & Error$, , Me.Name & " フォルダ作成" Resume 終了処理 End Sub '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ・・・以上、参考までに。

golgoakio
質問者

お礼

大変参考になりました。 私が意図していた、各テーブルのデータIDに対応した。データが新規追加されたときにフォルダをサーバー上に作成してゆくことに成功しました。  Loop処理等は、まだ、解読できていませんが、これからマスターしたいと思います。  教えてGOOには初めての質問ですが、このように親切に教えて板でけることに大変感謝しております。  私もどなたかのお役に立てるよう、努力してゆきたいと思います。  ありがとうございました。

関連するQ&A