Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


302 / 500 ページ ←次へ | 前へ→

【7182】Re:コンボボックスの表示について
回答  Gin_II  - 06/1/30(月) 0:11 -

引用なし
パスワード
   >2)エクスプローラーのファイル表示のように横にも伸ばしたい。
>探したりVBAの本みたりしていますが、難しくてわかりません。

こちらだけ。

ツリービュー コントロール活用法〜基礎編〜
http://x7net.com/~access/AcTipsFrmUsingTreeView1.html

コンボボックスではなく、↑を使っては?
・ツリー全体表示

【7180】コンボボックスの表示について
質問  Dis  - 06/1/29(日) 0:38 -

引用なし
パスワード
   最近、VBAに興味を持ち出した初心者です。
コンボボックス(一列だけ表示)のコトで悩んでいます。
1)マウスのポインタを重ねると開くようにしたい。
2)エクスプローラーのファイル表示のように横にも伸ばしたい。
探したりVBAの本みたりしていますが、難しくてわかりません。
・ツリー全体表示

【7179】矢印のだしかた
質問  ヒカル  - 06/1/28(土) 10:40 -

引用なし
パスワード
   フォームで時刻のコンソールに何も入力されていないときに、矢印として↓を自動的に入力したいのですが、そんなやり方はできますか?
よろしくお願いします。
・ツリー全体表示

【7178】Re:コンボボックスを使用した抽出
回答  中西 健  - 06/1/28(土) 0:21 -

引用なし
パスワード
    mayuさんこんばんは。
 状況がつかみきれていませんが、VBAを使うとこんな感じですかね。

 Private Sub コンボボックス0_AfterUpdate
  Filter = コンボボックス0
  FilterOn = True
 End Sub

 検索1,検索2はどんな風に実現されているのですか。
・ツリー全体表示

【7177】Re:フォームでのデータ抽出
回答  ふくちゃん  - 06/1/28(土) 0:03 -

引用なし
パスワード
   >Dim strName As String

Dim strName As Integer
でどうなりますかね?
オートナンバーって数字かと思います
・ツリー全体表示

【7176】フォームでのデータ抽出
質問  ユリ  - 06/1/27(金) 21:20 -

引用なし
パスワード
   以前も同じような内容で質問したのですが、今回ID番号でその番号を入力した時にその対応するデータがでるようにしたいのですが
今は、
Private Sub Form_Open(Cancel As Integer)
Dim strName As String
strName = _
InputBox("名前を入力してチョ!!", "基フォーム")
If strName = "" Then
 MsgBox "番号が間違っています。"
 Cancel = True
Else
 Me.Filter = "ID='" & strName & "'"
Me.FilterOn = True
End If


End Sub

IDはテーブルのオートナンバーです。
というふうにしてるのですが、データを引っ張ってこないです。
何かいい方法はありませんか?
・ツリー全体表示

【7175】Re:AceessからExcelを操って「図のリンク...
回答  小僧  - 06/1/27(金) 18:18 -

引用なし
パスワード
   ▼nn さん:
こんにちは。

>とりあえず Excelのマクロで「図のリンク貼り付け」を行うコードを作り、
>それをAccessで動かそうとしているのですが、

ExcelVBA でも同じ事が言えますが、Select、Activate は
なるべく使わない方が無難ですよ。

Sub Excelに図を貼り付ける()
'要参照設定 Microsoft Excel x.x Object Library
Dim xlsApp As Excel.Application
Dim xlsWkb(1 To 2) As Excel.Workbook
Dim SName As String
Dim PName As String
Dim Pic As Object

  SName = "D:\Source.xls"
  PName = "D:\Paste.xls"

  Set xlsApp = CreateObject("Excel.Application")
  Set xlsWkb(1) = xlsApp.Workbooks.Open(SName)
  Set xlsWkb(2) = xlsApp.Workbooks.Open(PName)
  
  xlsWkb(1).Sheets("Source").Range("B2:H17").Copy
  
  With xlsWkb(2).Sheets("Paste")
    Set Pic = .Pictures.Paste(True)
      Pic.Cut
    .Paste .Range("B7")
    Set Pic = Nothing
  End With

  xlsApp.CutCopyMode = False
  xlsWkb(2).Close True: Set xlsWkb(2) = Nothing
  xlsWkb(1).Close False: Set xlsWkb(1) = Nothing
  xlsApp.Quit: Set xlsApp = Nothing
End Sub
・ツリー全体表示

【7174】Re:フォームの新規作成
回答  小僧  - 06/1/27(金) 16:58 -

引用なし
パスワード
   ▼nana さん:
こんにちは。

>検索してヒットした企業には今まで投入してきた数だけシートがあるのですが
>新規フォームを作成したいのですがご指導お願いいたします。

単票の連結フォームで新規レコードを作成したい、
というのではないのでしょうか?
間違っていたらすみません。

Private Sub 新規作成_Click()
Dim Kigyomei As String
Dim Kigyokana As String
  
  Kigyomei = Me.企業名
  Kigyokana = Me.企業カナ
  DoCmd.GoToRecord acDataForm, Me.Name, acNewRec
  Me.企業名 = Kigyomei
  Me.企業カナ = Kigyokana
End Sub
・ツリー全体表示

【7173】Re:EXCELに出力の際のエラーについて
お礼  タロウ  - 06/1/27(金) 16:30 -

引用なし
パスワード
   ▼たん さん:

>リンクテーブルとして書き込むことは、仕様変更により無理なので、
>オートメーションでExcelシートを操作する以外に手法は無いと思えます。

そうですかやはりムリですか、
仕様変更とわりきって
オートメーションでExcelシートを操作するという
やり方に変えたいと思います。

回答ありがとうございました。
・ツリー全体表示

【7172】Re:EXCELに出力の際のエラーについて
回答  たん  - 06/1/27(金) 16:14 -

引用なし
パスワード
   >>「dbOpenSnapshot」を「dbOpenDynaset」にしたら、どうなりますか?
>
>変更してやってみましたが、
>かわらず同じエラーが出ます。

データセットの開き方を変えた所で、開いたデータセットは更新出来ないのは
かわりがないので、変更する意味はありません。

リンクテーブルとして書き込むことは、仕様変更により無理なので、
オートメーションでExcelシートを操作する以外に手法は無いと思えます。
・ツリー全体表示

【7171】Re:EXCELに出力の際のエラーについて
発言  タロウ  - 06/1/27(金) 15:57 -

引用なし
パスワード
   ▼T さん:ありがとうございます

>「dbOpenSnapshot」を「dbOpenDynaset」にしたら、どうなりますか?

変更してやってみましたが、
かわらず同じエラーが出ます。

できればこのままソースを使えればと思っていたのですが
またなにかお気づきならば教えてください
・ツリー全体表示

【7170】Re:EXCELに出力の際のエラーについて
発言    - 06/1/27(金) 15:40 -

引用なし
パスワード
   ▼タロウ さん:
>初心者なもので、ご指導お願いします。
>環境 WindowsXP SP2 ACCESS2003 SP2
>
>今までACCESSよりDAOで既存のEXCELファイルに出力していました
>ところが Office2003 ServicePack2をインストールしたところ
>「データベースまたはオブジェクトは読み取り専用なので、更新できません」
>というエラーが出るようになりました。
>調べた所下記URLの
>http://support.microsoft.com/kb/904953
>「Office Access2003またはAccess2002でExcelブックにリンクされている
>テーブル内のデータを変更、追加、削除できない」という所の問題かと思い
>回避策を確認したのですが、DAOの際の回避策がよくわかりません
>どなたか教えて頂けるでしょうか
>よろしくお願いします。
>
>ソースの抜粋です
>
> Dim XlsDb As Database, MyDb As Database
> Dim XlsRs As Recordset, MyRs As Recordset
> Dim EndFlg As Integer, I As Integer
>
> Set XlsDb = OpenDatabase(Path & "\" & ExcelName, False, False, ExcelType)
> Set XlsRs = XlsDb.OpenRecordset(SheetName & ExcelRange)
>
> Set MyDb = CurrentDb
> Set MyRs = MyDb.OpenRecordset(TblSql, dbOpenSnapshot)

「dbOpenSnapshot」を「dbOpenDynaset」にしたら、どうなりますか?


>
> ToExcel = 1
> EndFlg = 0
>
> If MyRs.EOF = False Then
> MyRs.MoveFirst
> Else
> ToExcel = 0 '出力データナシ
> DoCmd.Hourglass False
> Exit Function
> End If
> 
> If XlsRs.EOF = False Then
> 
>   XlsRs.MoveFirst
>   Do Until XlsRs.EOF
>  
>    If EndFlg = 0 Then
>     With XlsRs
>      .Edit              ←ここでエラーが出ます
>       For I = 0 To FieldCount - 1
>       XlsRs.Fields(I) = MyRs(FieldArray(I))
>       Next I
>      .Update
>     End With
>    Else
>     With XlsRs
>      .Edit
>       For I = 0 To FieldCount - 1
>       XlsRs.Fields(I) = Null
>       Next I
>      .Update
>     End With
>    End If
>  
>    If EndFlg = 0 Then
>     MyRs.MoveNext
>     If MyRs.EOF = True Then
>      EndFlg = 1
>     End If
>    End If
>   
>   XlsRs.MoveNext
>   Loop
>  
>   If EndFlg = 0 Then
>   ToExcel = -2   'エクセルデータ格納セル不足
>   End If
>  
> Else
>
>  ToExcel = -3     'エクセルデータ格納セル0
> End If
> XlsRs.Close
> XlsDb.Close
・ツリー全体表示

【7169】Re:EXCELに出力の際のエラーについて
お礼  タロウ  - 06/1/27(金) 15:22 -

引用なし
パスワード
   ▼Gin_II さん:
>> DAOの際の回避策がよくわかりません
>
>DAO で、Excelファイルのデータ更新はムリですね。
>
>Excel VBA で、Accessのデータを見に行くように変更するか、
>Excel を オートメーション機能を使って操作してやるかになると
>思います。

回答ありがとうございます。
ムリですか、でもご意見を聞けてよかったです。
オートメーション機能を使っての操作に変更してみます。
また何かありましたらよろしくお願いします。
・ツリー全体表示

【7168】Re:EXCELに出力の際のエラーについて
回答  Gin_II  - 06/1/27(金) 15:00 -

引用なし
パスワード
   > DAOの際の回避策がよくわかりません

DAO で、Excelファイルのデータ更新はムリですね。

Excel VBA で、Accessのデータを見に行くように変更するか、
Excel を オートメーション機能を使って操作してやるかになると
思います。
・ツリー全体表示

【7167】EXCELに出力の際のエラーについて
質問  タロウ  - 06/1/27(金) 14:47 -

引用なし
パスワード
   初心者なもので、ご指導お願いします。
環境 WindowsXP SP2 ACCESS2003 SP2

今までACCESSよりDAOで既存のEXCELファイルに出力していました
ところが Office2003 ServicePack2をインストールしたところ
「データベースまたはオブジェクトは読み取り専用なので、更新できません」
というエラーが出るようになりました。
調べた所下記URLの
http://support.microsoft.com/kb/904953
「Office Access2003またはAccess2002でExcelブックにリンクされている
テーブル内のデータを変更、追加、削除できない」という所の問題かと思い
回避策を確認したのですが、DAOの際の回避策がよくわかりません
どなたか教えて頂けるでしょうか
よろしくお願いします。

ソースの抜粋です

Dim XlsDb As Database, MyDb As Database
Dim XlsRs As Recordset, MyRs As Recordset
Dim EndFlg As Integer, I As Integer

Set XlsDb = OpenDatabase(Path & "\" & ExcelName, False, False, ExcelType)
Set XlsRs = XlsDb.OpenRecordset(SheetName & ExcelRange)

Set MyDb = CurrentDb
Set MyRs = MyDb.OpenRecordset(TblSql, dbOpenSnapshot)

ToExcel = 1
EndFlg = 0

If MyRs.EOF = False Then
 MyRs.MoveFirst
Else
 ToExcel = 0 '出力データナシ
 DoCmd.Hourglass False
 Exit Function
End If
 
If XlsRs.EOF = False Then
 
   XlsRs.MoveFirst
   Do Until XlsRs.EOF
  
    If EndFlg = 0 Then
     With XlsRs
      .Edit              ←ここでエラーが出ます
       For I = 0 To FieldCount - 1
       XlsRs.Fields(I) = MyRs(FieldArray(I))
       Next I
      .Update
     End With
    Else
     With XlsRs
      .Edit
       For I = 0 To FieldCount - 1
       XlsRs.Fields(I) = Null
       Next I
      .Update
     End With
    End If
  
    If EndFlg = 0 Then
     MyRs.MoveNext
     If MyRs.EOF = True Then
      EndFlg = 1
     End If
    End If
   
   XlsRs.MoveNext
   Loop
  
   If EndFlg = 0 Then
   ToExcel = -2   'エクセルデータ格納セル不足
   End If
  
Else

  ToExcel = -3     'エクセルデータ格納セル0
End If
XlsRs.Close
XlsDb.Close
・ツリー全体表示

【7166】コンボボックスを使用した抽出
質問  mayu  - 06/1/27(金) 14:27 -

引用なし
パスワード
   超初心者なのですが よろしくお願い致します。

T_住所A T_住所B と二つの住所録があります。
これを二つに分けている理由は レポートでの印刷時の
表示内容が違うからです(データ内容の重複はありません。)
これらを 一つにまとめるために q_一覧(ユニオンクエリ)があります。
q_一覧を元に F_一覧(名前、住所、電話番号)があります

現在これらを検索するために
検索1 あかさたな
検索2 aiueo が設定されています
(あ行のu だと『う』 か行のiだと『き』が検索)
これにもう一つ 分類 A、B、Cを加えたいと思います
F_住所A、F_住所B により入力したデータが 
上記で書いたそれぞれのテーブルに保存され、q_一覧 ができているわけですが
フォームにABCのチェックボックスを設け、チェックが入っている
もののみを表示したいのです
(F_一覧でAを選んだときAにチェックが入っているもののみ表示)

なぜ、今ボタンではなく、コンボボックスかというと
これからも検索項目が増えた場合への配慮です
お力をおかしくださいませ。
・ツリー全体表示

【7165】Re:文字の表示について
お礼  超初心者  - 06/1/27(金) 13:47 -

引用なし
パスワード
   ▼たん さん:
>余所の検索結果。
>
>http://www.accessclub.jp/search1/namazu.cgi?query=%83e%83L%83X%83g%83%7B%83b%83N%83X%81@%8Fk%8F%AC&submit=%8C%9F%8D%F5
>
>ここに書いてある事が理解できなければ、希望の要件の実現は困難でしょう。
>
># VBAでそのコントロールの文字サイズを動的に変更させるしかありません。
>
>Excelの「縮小して全体を表示」のような簡易にやる方法を望んでいるのであれば
>ありません。

ありがとうございます。
理解できるかとにかく見てみます。
どうもありがとうございました。
・ツリー全体表示

【7164】Re:文字の表示について
回答  たん  - 06/1/27(金) 13:24 -

引用なし
パスワード
   余所の検索結果。

http://www.accessclub.jp/search1/namazu.cgi?query=%83e%83L%83X%83g%83%7B%83b%83N%83X%81@%8Fk%8F%AC&submit=%8C%9F%8D%F5

ここに書いてある事が理解できなければ、希望の要件の実現は困難でしょう。

# VBAでそのコントロールの文字サイズを動的に変更させるしかありません。

Excelの「縮小して全体を表示」のような簡易にやる方法を望んでいるのであれば
ありません。
・ツリー全体表示

【7163】文字の表示について
質問  超初心者  - 06/1/27(金) 12:43 -

引用なし
パスワード
   レポートで、テキストボックスのサイズを変えずに、たくさんの文字を表示する方法はありますか。表示する言葉の文字数が多いときでも少ないときでも、同じサイズのテキストボックスの中で、全ての文字を表示したいのですが。
どなたか、分かりやすい回答をお願い致します。
その前に、質問の意味、分かりにくかったらすいません。
宜しくお願い致します。
・ツリー全体表示

【7162】AceessからExcelを操って「図のリンク貼り...
質問  nn  - 06/1/27(金) 11:58 -

引用なし
パスワード
    よろしくお願いします。

AccessからExcelBookを2つ開き、片方のブックのシートの図を片方のブックのシートに
「図のリンク貼り付け」をしようとしています。

とりあえず Excelのマクロで「図のリンク貼り付け」を行うコードを作り、
それをAccessで動かそうとしているのですが、
クリップボードにコピーした図を 
「図のリンク貼り付け」でペーストするところがうまくいきません。


'リンク元ファイルオープン
Ex.Workbooks.Open Filename:="D:\Source.xls"
        
'リンク元表を選択,コピー
Ex.Sheets("Source").Select
Ex.Sheets("Source").Range("B2:H17").Select
Selection.Copy

'貼り付け先のブックをオープン       
Ex.Workbooks.Open Filename:="D:\Paste.xls"
Ex.Workbooks(2).Activate
Ex.Sheets("Paste").Range("B7:H22").Select
'図のリンク貼り付けでペースト        
Ex.ActiveSheet.Pictures.Paste(Link:=True).Select ←ココが動かない!


ExcelのVBAでやる場合だと、
ActiveSheet.Pictures.Paste(Link:=True).Select
でうまくいくのですが・・・。
・ツリー全体表示

302 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1084681
(SS)C-BOARD v3.8 is Free