Access VBA質問箱 IV

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

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


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

【4849】Re:既存のExcelファイルにエクスポートす...
お礼  にしもり  - 05/4/8(金) 16:13 -

引用なし
パスワード
   ▼小僧 さん:
はじめてADOというものをつかいました。
参照設定に少々手間取りました。
参考書をみたら「OLE DBプロバイダを介して云々・・」と、理解不能な文が書いてあり、私には無理かなと思ったのですが、がんばってさがしたらツールの中にありました。
小僧さんのプログラムは、一発OKで、しかも完璧でした。
本当にありがとうございました。
今後ともご指導のほどよろしくお願いいたします。
・ツリー全体表示

【4848】Re:CopyFolder について
発言  小僧  - 05/4/8(金) 15:48 -

引用なし
パスワード
   ▼豆柴 さん:
こんにちは。
Linuxサーバにファイルを置いて再現をしてみたのですが
当方はうまくフォルダのコピーができております。

>  Dim colFilesystem As Object
>  Dim strSrcName As String
>  Dim strDestName As String
>
>  'オブジェクトの取得
>  Set colFilesystem = CreateObject("Scripting.FileSystemObject")
>
>  'フォルダのコピー ==>(これだとエラーになります)
>  strSrcName = "\\Primergy\共有領域\請求システム\データ"
>  strDestName = "\\Primergy\共有領域\"請求システムBACKUP"
→  strDestName = "\\Primergy\共有領域\請求システムBACKUP"

>  colFilesystem.CopyFolder strSrcName, strDestName
>  
>  'オブジェクトの解放
>  Set colFilesystem = Nothing

何の回答にもなっておりませんが参考までに…。
・ツリー全体表示

【4847】端数について
質問  kazumi  - 05/4/8(金) 15:16 -

引用なし
パスワード
   ある数量表示で小点数以下を指定桁数で切捨てするのですが
この数字だけ切り上げになってしまいます。
何か良い方法を教えてください。

例:17.65 → 16.83
  16.74 → 15.97・・・本来 15.96にしたい

  kirisute([数量]*(1-0.046),2)としています。
・ツリー全体表示

【4846】CopyFolder について
質問  豆柴  - 05/4/8(金) 14:25 -

引用なし
パスワード
   こんにちは
いつも参考にさせていただいております。

(windows xp ,access 2002 使用)
今回バックアップを作りたく以下のように作成しました。
コピー元・コピー先供にサーバー上の共有フォルダにあります。
実行すると"パスが見つかりません"でエラーになってしまいます。
そこで、\\Primergy\共有領域 を c:\ でテストして見ると上手く
出来ました。サーバー上の物は扱えないのでしょうか?
(データは存在しています)
よきアドバイスをお願いいたします。

  Dim colFilesystem As Object
  Dim strSrcName As String
  Dim strDestName As String

  'オブジェクトの取得
  Set colFilesystem = CreateObject("Scripting.FileSystemObject")

  'フォルダのコピー ==>(これだとエラーになります)
  strSrcName = "\\Primergy\共有領域\請求システム\データ"
  strDestName = "\\Primergy\共有領域\"請求システムBACKUP"
  colFilesystem.CopyFolder strSrcName, strDestName

  'フォルダのコピー ==>(これだと上手くいきます)
  strSrcName = "C:\請求システム\データ"
  strDestName = "C:\"請求システムBACKUP"
  colFilesystem.CopyFolder strSrcName, strDestName
  
  'オブジェクトの解放
  Set colFilesystem = Nothing
・ツリー全体表示

【4844】Re:既存のExcelファイルにエクスポートす...
回答  小僧  - 05/4/8(金) 11:18 -

引用なし
パスワード
   ▼にしもり さん:
こんにちわ。
あまり綺麗なコードでないので申し訳ないのですが…

※エクセルとADOの参照設定をしてください。

Sub TEST()
Dim FSO As Object
Dim xlsApp As New Excel.Application
Dim xlsWkb As New Excel.Workbook
Dim MyFile As Variant
Dim Cnt As Long

'出力ファイルの指定
  MyFile = "C:\新しいフォルダ\回数表.xls"

'存在チェック
  Set FSO = CreateObject("Scripting.FileSystemObject")
    If Not (FSO.FileExists(MyFile)) Then
      DoCmd.TransferSpreadsheet acExport, _
      acSpreadsheetTypeExcel9, "aa", MyFile, True
    Else

'出力先ファイルにシートを追加
      Set xlsWkb = xlsApp.Workbooks.Open(MyFile)
      Cnt = xlsWkb.Sheets.Count
      xlsWkb.Sheets.Add after:=xlsApp.Worksheets(Cnt)
      xlsWkb.ActiveSheet.Name = "aa" & Cnt
      xlsWkb.Save
      xlsWkb.Close: Set xlsWkb = Nothing
      xlsApp.Quit: Set xlsApp = Nothing
    
    DoCmd.TransferSpreadsheet acExport, _
    acSpreadsheetTypeExcel9, "aa", MyFile, True, "aa" & Cnt & "!"
    End If
End Sub

「TransferSpreadsheet」のヘルプには「acExport」の際のRange指定は
記載されていないので正しい使い方ではないと思いますが、
当方の環境では作動しております。(WindowsXP/Access2002/Excel2002)
・ツリー全体表示

【4843】4840の参照整合性の者です
質問  ☆mayumi☆  - 05/4/7(木) 17:22 -

引用なし
パスワード
   2.と4.はフィールドが1つしかないのに対して3.はフィールドが複数あるからだとわかりました。
3.のなかの会社名だけが反映されていました。
残りの住所等は変更されず、そのままでした。

残りのフィールドも変更させるにはどうしたらよいのでしょうか?
・ツリー全体表示

【4842】既存のExcelファイルにエクスポートするに...
質問  にしもり  - 05/4/7(木) 16:34 -

引用なし
パスワード
   こんにちは。
下記のようにAccessテーブルaaをExcelのファイル「回数表」にエクスポートしています。
これを2回3回・・と実行し、その都度シートが追加されるようにしたいのです。
シート名がaa ,aa(2),aa(3)・・というふうになれば十分です。
どうすればよろしいですか?

DoCmd.TransferSpreadsheet acExport, cSpreadsheetTypeExcel97, "aa", "C:\新しいフォルダ\回数表.xls"
・ツリー全体表示

【4841】Re:実行時エラー438
お礼  トミー  - 05/4/7(木) 16:01 -

引用なし
パスワード
   ▼小僧 さん:
>▼トミー さん:
>>フォームでオプショングループで作成した項目からオプション値に基いて処理を実行したらエラーコード:438(オブジェクトはこのプロパティまたはメソッドをサポートしていません)が表示されました。このエラーの意味と対処方法をお教え下さい。
>>環境はwin98 office2000を使っています。
>
>ご提示された内容だけですと、
>エラーの原因が掴みにくいと思われます。
>宜しかったらエラーが発生してしまったコードを
>提示して頂けると回答がつきやすいかと思います。
お騒がせしました。 原因がわかりました。 ありがとうございました。
・ツリー全体表示

【4840】参照整合性について
質問  ☆mayumi☆  - 05/4/7(木) 15:22 -

引用なし
パスワード
   こんにちは。テーブルの連結について教えてください。
顧客管理のデータベースを作っているのですが、下記のような問題が生じました。

1.メインテーブル
2.担当者テーブル
3.客先会社一覧テーブル
4.部署名テーブル
と4つに分けてテーブルを作成しており、1.のメインテーブルには2.〜4.のすべての内容がはいっています。
リレーションシップで1.のメイン=2.〜5.と設定しているのですが、
2.と4.は変更した際1.のメインに反映されているのですが、
3.の客先の住所等を変更しても1.のメインに反映されません。

フォームは2つに分けています。
A.入力画面用
B.客先一覧(客先会社名、客先部署、会社カナ、〒、住所)
BはAの入力画面で客先会社IDを選ぶと( )の中のものが自動入力されるように設定しています。
3.の客先の住所を変更した際、Bには反映されていますが、Aには反映されていません。しかし3.以外はAにも反映されています。

なぜ3.客先一覧だけが反映されないのでしょうか?教えてください。
・ツリー全体表示

【4839】Re:AccessとHiRDBのリンクが分かりません
お礼  さいとう  - 05/4/7(木) 14:39 -

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

いまやっと分かりました!

-------------------------------------------------------------------
<<AccessとHiRDBをつなぐ方法>>(ODBC等インストール済の場合)

1.Accessを開く
2.ファイル→新規作成→「テーブルのリンク」を選択→「ファイルの種類」で
 ODBCを選択
3.表示されたウィンドウの右のタブの中の、つなぎたいデータソース名を選択
4.IDとパスワードを入力
5.テーブル名とカラム名が出てくるので必要なものを選択
-------------------------------------------------------------------

という具合に行ったところ、テーブルの中身を見ることができました。
本当にありがとうございました。
余談ですが、これからは1回の質問でキチンと身に付けられるよう
気をつけたいと思います。お世話になりました。

さいとう
・ツリー全体表示

【4838】Re:AccessとHiRDBのリンクが分かりません
お礼  さいとう  - 05/4/7(木) 13:36 -

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

ありがとうございます。
ヘルプを見てみました。
インポートとリンクの違い等はよく分かりました。
もう少し調べてみます。
お力を貸して下さって、どうもありがとうございました。
・ツリー全体表示

【4837】Re:トップ画面がずれてくる
発言  クロ  - 05/4/7(木) 12:12 -

引用なし
パスワード
   ▼ドイツ人 さん:
>F11を押して裏でテーブルをいじったり、他のウインドウを開いていくうちに、

弄っているときにツールバーが表示されていてその領域をみて、だんだん下に
下がっていくのでは?
・ツリー全体表示

【4836】Re:AccessとHiRDBのリンクが分かりません
回答  たん  - 05/4/7(木) 12:02 -

引用なし
パスワード
   >早速の回答、どうもありがとうございます。
>実は以前上司に方法を教わったことがあり、
>接続できることは確かなのです。ただ私が方法を忘れてしまい、
>都合で聞ける方がいないのでこちらで質問させて頂いた次第です。

ヘルプで「ODBC」から「SQL データベースのテーブルやほかの
ODBCデータソースのデータをインポートまたはリンクする」を
調べましょう。

ちなみに私は最初に述べたように、HiRDB自体は分かりませんので、
ヘルプに書いてある通りにやってみて駄目なら、メーカーに
問い合わせた方がいいと思います。

(ただ、状況としてどう駄目なのかを説明すれば、他の方が協力して
 下さるかもしれません)

# あと、これはうがった見方なのですが、「聞ける知識を持った方が
# いない」のと「一度聞いた事をまた聞くのは恥ずかしい」というのは
# 全く別ですよ。(今回は、多分前者だと思うのですが)

文面を訂正しました。
・ツリー全体表示

【4835】トップ画面がずれてくる
質問  ドイツ人  - 05/4/7(木) 11:51 -

引用なし
パスワード
   質問です。

アクセス97でシステムを作成したのですが、項目がそれほど無いため、メインメニューを小さく設定しています。

一応、プロパティで、中央に来るように自動設定しているので、開くときはきれいに中央にいるのですが、F11を押して裏でテーブルをいじったり、他のウインドウを開いていくうちに、メインメニューがなぜかどんどん下に下がってきます。

訳分かりません。

御教授くだされば幸いですm(__)m
・ツリー全体表示

【4834】Re:OutputToを使用した時の不具合について
質問  ち〜  - 05/4/7(木) 11:40 -

引用なし
パスワード
   ▼Gin_II さん:
>> データを表示させた状態で、メニューバー⇒「ツール」⇒「OfficeLinks」⇒
>> 「MicrosoftExcelに出力」とすれば正しい状態でエクスポートができます。
>
>これって、出力/OutputTo と同じ動作・結果になると思いますけど?
>ワークシート変換/TransferSpreadsheet のことを言っているのだとは思いますが。(^^ゞ

Gin_II さんありがとうございます。
これがメニューバーから選択するのとDocmd.OutputTo命令を行うのでは違う現象が発生するのです。
メモ型の内容で半角の"."等があるとExcelに出力されないみたいなのです。
<出力される例>
 ”おはようございます。只今4月7日12時です。”
<出力されない例>
 ”おはようございます。只今2005.04.07 12:00です。”

256文字以上の件は今のところあきらめるか区切って出力するしかないとは思うのですが、
まったくその項目内容だけ出力されないのはどうしてなのか分かりますか?
・ツリー全体表示

【4832】Re:AccessとHiRDBのリンクが分かりません
質問  さいとう  - 05/4/7(木) 11:18 -

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

早速の回答、どうもありがとうございます。
実は以前上司に方法を教わったことがあり、
接続できることは確かなのです。ただ私が方法を忘れてしまい、
都合で聞ける方がいないのでこちらで質問させて頂いた次第です。

ODBCドライバはインストール済です。
「ODBCデータソース アドミニストレータ」という設定の詳細を
見てみたところ、

名前:(今回のデータソース名)
ドライバ:Oracle in OraHome92

とか

名前:MS Access Database
ドライバ;Mircosoft Access(*.mdb)

とかありました。ただ、前回リンクをした際はここは全くいじらず、
ただAccessで新規作成→ODBC→「すべて選択」という操作をした記憶があります。
もう少し調べてみます。
何かお心当たりがありましたら、是非教えて下さい。


さいとう
・ツリー全体表示

【4831】Re:ボタンの使い方
お礼  takataka  - 05/4/7(木) 1:41 -

引用なし
パスワード
   早急なご返答有難うございます。
レコードカウントで存在を確認し確認できました。有難う御座いました。
今後も宜しくお願いします。

▼hatena さん:
>>該当テーブル 2レコード内に特定条件に該当するレコードあったら使用不可などできますか?
>>現在ifを使用してやっているのですが上手く行かないので…
>>例えば 当日日付 が該当テーブルにあればボタンは表示しない。といった感じです。
>
>DLookup関数やDCount でレコードの存在チェックをすればどうでしょうか。
>
>例
>
>Me!ボタン.Enabled = _
> IsNull(DLookUp("日付","テーブル","日付=#" & Format(Date(),"yyyy/mm/dd") & "#"))
・ツリー全体表示

【4830】Re:OutputToを使用した時の不具合について
回答  Gin_II  - 05/4/7(木) 1:33 -

引用なし
パスワード
   > データを表示させた状態で、メニューバー⇒「ツール」⇒「OfficeLinks」⇒
> 「MicrosoftExcelに出力」とすれば正しい状態でエクスポートができます。

これって、出力/OutputTo と同じ動作・結果になると思いますけど?
ワークシート変換/TransferSpreadsheet のことを言っているのだとは思いますが。(^^ゞ


[ACC2002] レポートを Excel に出力するとメモ型フィールドの文字が切り詰められる
http://support.microsoft.com/default.aspx?scid=kb;ja;294286

こちらを確認してください。
・ツリー全体表示

【4829】Re:ボタンの使い方
回答  hatena  - 05/4/7(木) 0:25 -

引用なし
パスワード
   >該当テーブル 2レコード内に特定条件に該当するレコードあったら使用不可などできますか?
>現在ifを使用してやっているのですが上手く行かないので…
>例えば 当日日付 が該当テーブルにあればボタンは表示しない。といった感じです。

DLookup関数やDCount でレコードの存在チェックをすればどうでしょうか。



Me!ボタン.Enabled = _
IsNull(DLookUp("日付","テーブル","日付=#" & Format(Date(),"yyyy/mm/dd") & "#"))
・ツリー全体表示

【4828】Re:ボタンの使い方
質問  takataka  - 05/4/6(水) 23:26 -

引用なし
パスワード
   ご返答有難うございます。
該当テーブル 2レコード内に特定条件に該当するレコードあったら使用不可などできますか?
現在ifを使用してやっているのですが上手く行かないので…
例えば 当日日付 が該当テーブルにあればボタンは表示しない。といった感じです。
▼hatena さん:
>▼takataka さん:
>>ご返答有難うございます。
>>できましたが、一度フォームを閉じて再度開くとボタンが使用可にしまいます。
>>この様な状況でも使用不可にできますでしょうか?
>
>ボタンのあるフォームを閉じて再度開いても、該当フォームが開いている場合は、
>使用不可にしたいということですね。
>
>フォームを開くときに、該当フォームが開いているかどうかチェックして
>開いていれば、使用不可にすればいいですね。
>
>Me!ボタン.Enabled = Not CurrentProject.AllForms("該当フォーム").IsLoaded
>
>とか、
>
>Me!ボタン.Enabled = SysCmd(acSysCmdGetObjectState,acForm,"該当フォーム") = 0
・ツリー全体表示

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