• ベストアンサー
  • 困ってます

ACCESS どなたか教えてください。

  • 質問No.6508407
  • 閲覧数89
  • ありがとう数5
  • 回答数5

お礼率 89% (17/19)

現在,以下の構文を記載している状態です。

Private Sub コマンド62_Click()

Dim Appwo As Word.Application
Dim doc As Word.Document
Dim stPath As String

stPath = "C:\Users\pigo\Desktop\納品書.docx"

Set Appwo = CreateObject("Word.Application")
Set doc = Appwo.Documents.Open(stPath)

Appwo.Visible = True
With Appwo.Selection
.Find.Text = "明細"
.Find.Replacement.Text = Me.txt明細
.Find.Execute Replace:=wdReplaceAll
End With
With Appwo.Selection
.Find.Text = "納品日"
.Find.Replacement.Text = Me.txt納品日
.Find.Execute Replace:=wdReplaceAll
End With

Set Appwo = Nothing
Set doc = Nothing

End Sub

ここで質問なのですが,フォーム上には,納品日として「平成16年4月12日」と記載されているのです(フォームプロパティの書式は,[ggge\年m\月d\日])が,コマンド62を実行した結果のWord上では,「納品日」の部分の置き換えとして「2004/04/12」との表示となってしまいます。
Word上でもそのまま「平成16年4月12日」と表示させたいのですが,どうすればよいのか分かりません。

どなたかお教えいただければ幸いです。よろしくお願いいたします。

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 55% (773/1384)

.Find.Replacement.Text = Me.txt納品日.Text
Textプロパティを使う。
でもフォーカスのない状態で使うと怒られるかも。
確実なのはFormat関数で変換する。
.Find.Replacement.Text = _
    Format(Me.txt納品日, "ggg年m月d日")
お礼コメント
ahoai09

お礼率 89% (17/19)

大変参考になりました。
少し少しですが,皆さんに教えていただきながら,
知識をつけていただければと思ってます。
本当にありがとうございました。
投稿日時:2011/02/10 23:01

その他の回答 (全4件)

  • 回答No.5

ベストアンサー率 27% (4545/16264)

既に回答が出てますが、テストのやり方も含めて書いてみます。
質問のコードを一部修正(平成21年12月15日のところ、および質問に関係ない個所削除)
Private Sub コマンド62_Click()
Dim Appwo As Word.Application
Dim doc As Word.Document
Dim stPath As String
stPath = "C:\Documents and Settings\XXXX\My Documents\時刻挿入.doc"
Set Appwo = CreateObject("Word.Application")
Set doc = Appwo.Documents.Open(stPath)

Appwo.Visible = True
With Appwo.Selection
.Find.Text = "納品日"
.Find.Replacement.Text = "平成21年12月15日"
.Find.Execute Replace:=wdReplaceAll
End With
Set Appwo = Nothing
Set doc = Nothing
End Sub
をアクセスのモジュールで実行すると、ワード文書上で平成21年12月15日になりました。
と言うことは、テキストボックスの値は、書式編集しない限り、既定(標準)の2011/2/12式の日付書式になっている(または値としてはそうなっている)と思われるので、Format関数で平成21年12月15日のような文字列に変更してワードに置ける置換元データにすればよいと思う。
お礼コメント
ahoai09

お礼率 89% (17/19)

ご回答ありがとうございました。皆さんからの回答でなんとかうまくいけました。しっかりと勉強してみたいと思います。また,質問させていただくこともあるかと思いますので,そのときはまたお願いいたします。
投稿日時:2011/02/13 10:23
  • 回答No.4

ベストアンサー率 23% (292/1222)

『平成 表示 させたい』
これだけの検索でもヒントはでます。

ACCESS CLUB
とかのサイトを見てもよい。

掲示板は質問に対しての回答しか提供しない、のがほとんど。それに比べて自分で検索して探すと目的以上の知識が得られます。
お礼コメント
ahoai09

お礼率 89% (17/19)

ご回答ありがとうございました。ネット上で何を検索すれば,ヒントにたどりつけるのか少しずつ分かってきました。勉強しています。ありがとうございました。
投稿日時:2011/02/13 10:19
  • 回答No.3

ベストアンサー率 23% (292/1222)

答えだけ教えてもまた質問になりそうだ。

これができて、基本的なことができない事に気付くべき。

教えてもらう、実行
修正、悩む
また教えてもらう、実行
修正、悩む
また教えてもらう、実行

なんとも無駄なやり方、教え方、教わり方。
自分で考えたり調べることができるようになれば同じような質問はしなくて済む。聞いてばかりだからすぐ困るのでないか?。
また困ったーとなりたくなければ、そこも意識しよう。


FORMAT関数使う。
これだけで後は考えて、というくらいでないと。
お礼コメント
ahoai09

お礼率 89% (17/19)

ご回答ありがとうございます。やはり基礎の勉強をとおりこして回答だけを求めても力にはなりませんね…実感しています。大変参考になりました。
投稿日時:2011/02/13 10:18
  • 回答No.2

ベストアンサー率 75% (685/907)

.Find.Replacement.Text = Me.txt納品日



.Find.Replacement.Text = Format(CDate(Me.txt納品日.Value), "ggg\年m\月d\日")

に変更。
お礼コメント
ahoai09

お礼率 89% (17/19)

早速の回答ありがとうございました。
参考にさせていただき,なんとかうまくいきました。
もっと勉強しなければと痛感しているところです。
ありがとうございました。
投稿日時:2011/02/10 23:00
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ページ先頭へ