アクセス2000の使い方について2つ質問があります。だれか教えて下さい。
1.フォーム上に2つのテキストボックスを配置し、一方のテキストボックスに全角で入力した文字を、ボタンを押したら、他方のテキストボックスに半角で返すようにしたいのですが、どのようにすればいいでしょうか?
2.データが格納されているフォルダのフルパスを入力するためのフィールドを作成し、例えば、「d:\db\data\」のように入力するようにしてあるのですが、このフィールドに初心者でもフォルダのフルパスを入力できるようにしたいのですが、ボタンを押すと、フォルダを指定するダイアログボックスを表示させ、そのダイアログボックスでフォルダを選択させるようにすることはできないでしょうか?
教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

2.に関して、先に答えられている nishi6さんと違う方法を・・・・



僕のHP(参考URL)に「tips&FAQ」というページがあって、その中に
Accessの「ファイルを開く」などのダイアログを表示する方法
というのがあるので、参考にしてみて下さい。
Accessが内蔵している(?)ダイアログの使用方法を書いてあります。

参考URL:http://www.zenko3.com/
    • good
    • 0

>1.フォーム上に2つのテキストボックスを配置し・・・


Text1の全角文字をコマンド1ボタンでText2に半角で返します。
Private Sub コマンド1_Click()
Text2 = StrConv(Text1, vbNarrow)
End Sub
>2.データが格納されているフォルダのフルパスを入力・・・
まずAccess のVBE画面で、ツール→参照設定→Microsoft Excel 9.0 Object Library にチェックをしてOK。
以下を貼り付けて下さい。
ダイアログボックスで指定したフォルダ、またはファイルのフォルダ名をText3に返します。
ExcelのGetSaveAsFilenameメソッドを使っています。他にGetOpenFilenameメソッドもあったかと思います。
いろんなことをするのはExcelの方が自由度が高いかも知れません。フォルダ名を取り出すのは他に方法があった気もします。これは最後の"\"を探しています。
Private Sub コマンド2_Click()
Dim myFile '指定したファイル名
Dim myExcel 'エクセル
Set myExcel = Excel.Application
myFile = myExcel.GetSaveAsFilename()  ’ファイルフィルタが使える

Dim L As Integer  ’カウンタ
If myFile <> False Then
For L = Len(myFile) To 1 Step -1
If Mid(myFile, L, 1) = "\" Then ’何か他の方法があったと思うが
Text3 = Left(myFile, L - 1)
Exit For
End If
Next
End If
End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qアクセスで、テキストボックスに値を入れてコマンドボタンを押すと、リストが検索した値で絞られるようにし

アクセスで、テキストボックスに値を入れてコマンドボタンを押すと、リストが検索した値で絞られるようにしたいです。例えば、ボックスにAAといれたら、AAのみが表示されるようにしたいです。

以下添付資料の通り、VBAを作ったのですが、うまく回りませんでした。どこがおかしいかをご指摘いただけませんでしょうか。

Aベストアンサー

図から察するに
フィルターをかけるのは、ボタンのあるフォームではなく、
そのフォームにあるサブフォームでしょうか。

ということなら

With Me.サブフォームコントロール名.Form
  .Filter = " ・・・・
  .FilterOn = True
End With

QExcelVBA コンボボックスに入力があったらリンクしてテキストボックスを更新したい

フォームで入力画面をつくっています。
あるコンボボックスのリストから項目が選択されたら、一覧からリンクさせてテキストボックスの内容を更新がしたいのです。
例えば「社員コード」のコンボボックスで「3」が選択されたら、「社員名」のテキストボックスに別シートに作成してある社員一覧から「太郎」が表示されるというようにです。

セルA1とコンボボックスをリンクさせ、セルB1にVLOOKUP(A1,一覧,2)で一覧から名前を抽出しました。コンボボックスのChangeイベントでB1の内容をテキストボックスへ送っているのですが、カーソルを別の項目へ移動するまではテキストボックスの内容が更新されません。
コンボボックスのリストを選択した時点でテキストボックスを更新する方法はないでしょうか?

Aベストアンサー

こんばんは。

今は、Form というのは、UserForm のことだと思います。Excelには、フォームツールもありますが、レガシーツールですから、割愛します。

>セルA1とコンボボックスをリンクさせ、セルB1にVLOOKUP(A1,一覧,2)で一覧から名前を抽出しました。
UserForm で、なぜ、ComboBox で、A1 にリンクさせるのでしょうか?
リンクというのは、ControlSource のことだと思います。それでは、出来ませんね。
Change イベントに組み込まないといけません。そのような方法をしなくても可能です。

'-------------------------------------------
たとえば、ワークシートのセルに社員コードと社員名を入れたもの書かれてあるとします。
次に、ComboBox のプロバティの「RowSource」に少なくとも、2列を登録します。

なお、ComboBoxは、2列も入れることが可能です。
ColumnCount | 2 ,ColumnWidth | 20 pt; 20 pt (pt は省略可)のようにすることが可能です。

そうして、以下のようにすれば、テキストボックスに出てくるはずです。

 .ListIndex + 1 と+1しているのは、初期値が -1 で、最初が、0 からだからです。

'-------------------------------------------
Private Sub ComboBox1_Change()
Dim ret As Variant
  With ComboBox1
  ret = Application.VLookup(.ListIndex + 1, ActiveSheet.Range(.RowSource), 2)
  If Not IsError(ret) Then
   TextBox1.Value = ret
  End If
  End With
End Sub
'-------------------------------------------
ActiveSheet よりも、Worksheets(____) と入れたほうがよいです。

こんばんは。

今は、Form というのは、UserForm のことだと思います。Excelには、フォームツールもありますが、レガシーツールですから、割愛します。

>セルA1とコンボボックスをリンクさせ、セルB1にVLOOKUP(A1,一覧,2)で一覧から名前を抽出しました。
UserForm で、なぜ、ComboBox で、A1 にリンクさせるのでしょうか?
リンクというのは、ControlSource のことだと思います。それでは、出来ませんね。
Change イベントに組み込まないといけません。そのような方法をしなくても可能です。

'--------...続きを読む

QWORのテキストボックスフィールドの枠を印刷したい

Wordでテキストボックスフィールドを作成しましたが、印刷プレビューでは、グレーの枠は表示してありますが、印刷すると枠は印刷されないです。
印刷するにはどうしたらいいですか?

Aベストアンサー

こちら↓に書かいてあるようにフォームの網掛け表示は印刷されません。

フォームの網かけの表示と非表示を切り替える
http://office.microsoft.com/ja-jp/word/HP051862601041.aspx?pid=CH063563531041

印刷させたいなら事前に[網掛け]を設定して、[フォーム]ツールバーに
ある[フィールドの網掛け表示]ボタンで解除しても、網掛けされている
状態にしてあげてから印刷します。

Q1つのテキストボックスで全フィールドを検索するには

1つのテキストボックスで全フィールドを検索するには

Access2002使用です。
現在フォームにて、それぞれのフィールド毎に検索用のテキストボックスを用意してる為、
下記のようになっています。
これを、1つのテキストボックスで全てのフィールドを検索できるようにするには、
どこを訂正したらよろしいでしょうか?
宜しくお願い致します。

Option Compare Database

Function exeFilter()
Dim strFilter As String

If Not IsNull(姓検索) Then
strFilter = " AND 姓 Like '*" & Me.姓検索 & "*'"
End If

If Not IsNull(名検索) Then
strFilter = strFilter & " AND 名 Like '*" & Me.名検索 & "*'"
End If

If Not IsNull(姓ふりがな検索) Then
strFilter = strFilter & " AND ふりがな(姓) Like '*" & Me.姓ふりがな検索 & "*'"
End If

If Not IsNull(名ふりがな検索) Then
strFilter = strFilter & " AND ふりがな(名) Like '*" & Me.名ふりがな検索 & "*'"
End If

If Not IsNull(住所1検索) Then
strFilter = strFilter & " AND 住所1 Like '*" & Me.住所1検索 & "*'"
End If

If Not IsNull(住所2検索) Then
strFilter = strFilter & " AND 住所2 Like '*" & Me.住所2検索 & "*'"
End If

If Not IsNull(住所1ふりがな検索) Then
strFilter = strFilter & " AND 住所1ふりがな Like '*" & Me.住所1ふりがな検索 & "*'"
End If

If Not IsNull(住所2ふりがな検索) Then
strFilter = strFilter & " AND 住所2ふりがな Like '*" & Me.住所2ふりがな検索 & "*'"
End If

Me.Filter = Mid(strFilter, 6)
Me.FilterOn = True
End Function

Private Sub Form_AfterUpdate()

End Sub

1つのテキストボックスで全フィールドを検索するには

Access2002使用です。
現在フォームにて、それぞれのフィールド毎に検索用のテキストボックスを用意してる為、
下記のようになっています。
これを、1つのテキストボックスで全てのフィールドを検索できるようにするには、
どこを訂正したらよろしいでしょうか?
宜しくお願い致します。

Option Compare Database

Function exeFilter()
Dim strFilter As String

If Not IsNull(姓検索) Then
strFilter = " AND 姓 Like '*" & Me.姓検索 & "*'...続きを読む

Aベストアンサー

ひとつのテキストボックス(仮に名前を、全検索)が有るとすると
提示されたコードの、AND を全て OR に書き換えて
検索対象の、Me.姓検索 などを全てMe!全検索にすると出来るかと
思いますが、
そうすると、たとえば”市川”で検索すると
名前が市川や住所の市川市などもヒットしてしまいます。
かといって AND では全ての条件に収まるレコードは
おそらく有り得ないので常に何もヒットしなくなります。

なので、OR 検索の方向でもう少し考えると・・・
リストボックスを作成し、(名前は仮に LB1 とします)
値集合タイプを、フィールドリスト
値集合ソースに、フォームのレコードソース名 とします。
複数選択は、標準 または 拡張に。

今回は、コマンドボタンのクリック時イベントに割り当ててみました。
ご参考までに。※投稿用にタブを全角スペースに変換しています。

『コマンドボタンあれ』のクリック時イベントに下記をコピペ

Private Sub コマンドボタンあれ_Click()
  Dim varItem As Variant
  Dim strItem As String
  Dim strArray() As String
  Dim strFilter As String
  Dim i As Integer

  If Me!LB1.ItemsSelected.Count = 0 Then    'リストボックスが選択されていない場合
    Me.FilterOn = False
    Exit Sub
  End If
    
  For Each varItem In Me!LB1.ItemsSelected  'リストボックスの内容を変数に格納
    strItem = strItem & Me!LB1.ItemData(varItem) & Chr(124)
    '多分使わないであろう文字 | Chr(124)を区切り記号にしています
  Next
  strItem = Left(strItem, Len(strItem) - 1)
  
  Me.Filter = ""
  strArray = Split(strItem, Chr(124), , vbDatabaseCompare)  '配列に収めます
        
  For i = 0 To UBound(strArray)  '配列からFilter文の作成
    strFilter = strFilter & "([" & strArray(i) & "]" _
          & " like '*" & Me!全検索 & "*')" & " OR "
  Next
  strFilter = Left(strFilter, Len(strFilter) - 4)   '末尾の" OR "を削除
'  Debug.Print strFilter
  Me.Filter = strFilter
  If DCount("*", Me.RecordSource, Me.Filter) = 0 Then
    MsgBox "知らない", vbOKOnly
    Exit Sub
  End If
  Me.FilterOn = True

End Sub

ひとつのテキストボックス(仮に名前を、全検索)が有るとすると
提示されたコードの、AND を全て OR に書き換えて
検索対象の、Me.姓検索 などを全てMe!全検索にすると出来るかと
思いますが、
そうすると、たとえば”市川”で検索すると
名前が市川や住所の市川市などもヒットしてしまいます。
かといって AND では全ての条件に収まるレコードは
おそらく有り得ないので常に何もヒットしなくなります。

なので、OR 検索の方向でもう少し考えると・・・
リストボックスを作成し、(名前は仮に LB1 とします)
値集...続きを読む

Qフィールド1だけのテキストボックスの幅を変える事は

フィールド1だけのテキストボックスの幅を変える事は出来ないのでしょうか?

アクセス2007です。

テーブル1に
・ID オートナンバー型
・フィールド1 テキスト型
・フィールド2 テキスト型
を作り、

作成→その他フォーム→フォームウィザードで、フォームを作りました。

そして、デザインビューでテキストボックスのコントロールの幅を変えようと思うのですが
フィールド1だけの幅を長くしたいのに
・ID
・フィールド1
・フィールド2
の全てのテキストボックスが同じ長さになってしまいます。

「グループ化がされてるのかな?」と思い見てみましたが、されていません。

フィールド1を選択してF4を押して、プロパティシートを表示し、
幅を10にしたら、
・ID
・フィールド1
・フィールド2
全ての幅が10になってしまいました。

どうすれば、フィールド1だけのテキストボックスの幅を変える事が出来るのでしょうか?
ご回答よろしくお願いします。

Aベストアンサー

#1です

既に解決されていると思います。

以後同じような質問があった場合は、以下を記述したいと思います。
(サイトが違うので、どうしようか悩んでいましたが)

アクセス2007のフォームの作成でテキストボックスのサイズ変更が、個別に設定
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1030773980


辿れば誰かわかると思うけど、誰・・・は必要なんだろうか


人気Q&Aランキング

おすすめ情報