Access VBA 質問スレ Part1

■ このスレッドは過去ログ倉庫に格納されています
2012/02/06(月) 22:53:46.88
AccessのVBAに関する質問スレです

★1 質問テンプレ(雛形)は用意しませんが、OSとAccessのバージョンは必ず書きましょう。

★2 AccessのVBA以外の部分に関する質問はNGです。
   但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。

★3 AccessのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。

 VBAとは、『Visual Basic for Application』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。

★4 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、
   コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
   ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。

★5 わからなければとりあえず「マクロの記録」(Alt, T, M, R)

関連スレ
Excel VBA 質問スレ Part23
http://toro.2ch.net/test/read.cgi/tech/1327763113/l50
154デフォルトの名無しさん
垢版 |
2013/09/09(月) 07:18:08.57
>>153
ここはVBAのスレですよね?VBAと関係ある話をしてください。
VBAとまったく関係ない話をしたのはあなたです。VBAでお願いします。
155デフォルトの名無しさん
垢版 |
2013/09/09(月) 13:03:59.99
VBAを一言で表すと
2013/09/09(月) 13:20:44.56
>>154
マジレスしといてやるが、VBAでやるよりよっぽど>>153の方法の方が良いぞ
だがあえてVBAでやりたいなら
明細セクションの最初と最後に改ページコントロール(改ページ1,2)を配置して
Dim 行数 As Integer
Dim 前コード
Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer)
    Me.改ページ1.Visible = False
    Me.改ページ2.Visible = False
    前コード = Me.フィールド5
End Sub
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
&nbsp; &nbsp; If Me.フィールド5 <> 前コード Then
&nbsp; &nbsp; &nbsp; &nbsp; Me.改ページ1.Visible = True
&nbsp; &nbsp; &nbsp; &nbsp; 行数 = 0
&nbsp; &nbsp; Else
&nbsp; &nbsp; &nbsp; &nbsp; Me.改ページ1.Visible = False
&nbsp; &nbsp; End If
&nbsp; &nbsp; 前コード = Me.フィールド5
&nbsp; &nbsp; 行数 = 行数 + 1
&nbsp; &nbsp; If 行数 > 4 Then
&nbsp; &nbsp; &nbsp; &nbsp; Me.改ページ2.Visible = True
&nbsp; &nbsp; &nbsp; &nbsp; 行数 = 0
&nbsp; &nbsp; Else
&nbsp; &nbsp; &nbsp; &nbsp; Me.改ページ2.Visible = False
&nbsp; &nbsp; End If
End Sub
こんな感じ。この例ではフィールド5が変わったら改ページな
2013/09/09(月) 13:22:34.74
う。&nbsp;は空白に置換してくれ
つか普通に貼り付けできなくなったのかよ
158デフォルトの名無しさん
垢版 |
2013/09/10(火) 00:16:36.47
>>156
もう少し教えてください。。。
明細が5明細あった場合、

コードA
00001
00002
00003
00004
改ページ
コードA
00005
改ページ
コードB
00001
00002
00003
改ページ
コードC
00001

こんな感じで出したいのですが
2013/09/10(火) 02:26:08.63
>>158
>>156が理解できないなら、VBAでやるのやめとけ
160sage
垢版 |
2013/09/17(火) 19:50:09.24
Accessのクエリで、「クエリの並び替え条件を動的に変更する」方法を
教えて頂けないでしょうか。

現状は、下記のクエリを作成しましたが、並び替え条件として判定されません。

SELECT * FROM テーブル1
ORDER BY FORMS!画面1!テキスト1.Value

よろしくお願いします。
2013/09/17(火) 20:22:56.49
>>160
SELECT * FROM テーブル1
ORDER BY FORMS!画面1!テキスト1.Value

これってどこに書いてるの?
2013/09/17(火) 21:44:28.61
>>160
どうしてもやりたいならQueryDefとか使えばできるかもしれんが
動的にSQLつくってDoCmd.RunSqlでやる方がいいんじゃね
163160
垢版 |
2013/09/17(火) 22:09:44.82
>>161
Accessの「クエリ」で定義していました。

>>162
ご指摘を受けた点を参考にクエリを作成した所、うまく行きました。
ありがとうございます。
164デフォルトの名無しさん
垢版 |
2013/10/20(日) 21:44:25.62
株価のデータベースを作りVBAで銘柄の抽出をしています
VBAを呼ぶ度にSQLで株価データを読み込んでるので日に何度もやると結構無駄です

そこでフォームをロードした時に纏めて銘柄毎のクラスオブジェクトを作り
フォームをアンロードするまで保持したいのですが可能でしょうか?

変数の保持はStaticで良いようですが、配列化してるオブジェクトの保持はどのようにするのでしょうか?
165デフォルトの名無しさん
垢版 |
2013/10/20(日) 22:06:18.65
view
2013/10/20(日) 22:10:51.15
すごいVBA発見w
http://esuafai.digi2.jp/
167164
垢版 |
2013/10/20(日) 22:56:11.74
フォームと連動させるのではなく、最初に実行させる時にStaticで保持し
2度目からオブジェクトが空ではないならデータを取りに行かずに
値渡しするようにして解決しました
2013/10/21(月) 00:11:20.78
なんか色々つっこみどろこ満載だな
まあ、動いてるならいいか
169デフォルトの名無しさん
垢版 |
2013/11/05(火) 18:56:30.39
VBAでリモートのデータベースにトランザクション処理を開始して、コミット/ロールバックするのはわかりました。
これをマクロのアクションだけではできないですよね。
Vbaを嫌がる仲間が同一プロジェクト内にいるので。
170デフォルトの名無しさん
垢版 |
2013/11/16(土) 13:17:48.50
初心者ですみません。コンパイルってなんですか?
2013/11/16(土) 13:19:54.03
疲労困憊る
172デフォルトの名無しさん
垢版 |
2013/11/16(土) 13:40:52.90
コンパイルダー・オン
2013/11/16(土) 15:59:42.46
昔広島にあったSTGや落ちゲーキャラゲー開発してた会社
2013/11/16(土) 17:51:44.57
あったなぁ
2013/11/16(土) 18:27:38.04
脳みそコネコネの会社?なくなったのか?
2013/11/16(土) 18:29:57.41
マジレスしとこう
>>170
ソースプログラムを実行可能形式に変換する事

簡単に言えば、お前が書いたプログラムを実行できるように準備する作業
ACCESSなら勝手にやってくれるから、意識する必要はない
2013/11/16(土) 19:25:11.96
>>175
1998年に無くなって、落ちゲー関係はセガが買い取った
178デフォルトの名無しさん
垢版 |
2013/11/16(土) 21:35:05.65
>>176
なるほど。では、あえてコンパイルという作業をしなくてもOK
ってことですね。
あるがとうございます!
2013/11/25(月) 21:45:32.92
Accessの場合、ソースを中間コードに変換する作業をコンパイルと呼んでる。
その過程でソースにエラーがあるかどうかをチェックするから
実行時エラーとかの対策にはコンパイル通しておいた方が良いと思う。
2013/11/26(火) 02:50:39.57
実行時エラーってのは普通、コンパイルは通った後に発生するエラーの事を言うんだが
まあ、実行時にコンパイルエラー出るのもなんだし、事前にコンパイルしとけってのは同意するが
181デフォルトの名無しさん
垢版 |
2014/01/31(金) 12:48:48.93
Access独自の便利機能なのか分かりませんが
テキスト型のフィールドで日付が含まれる文を「日付順にソート」出来るのですが
これをVBAでやるにはどうしたら良いのでしょうか?

テキストに規則性が無いためにOrderByなどでは対応出来ません
テキストフィールドに入ってる文字列の例:

"第3四半期決算を1月10日に発表済み"
"第3四半期決算を2月10日"
"本決算を2月13日"
"---"

このようになってても、テーブルのフィールドを選択してソートが出来るとは初めて知ったのですが
VBAからやる方法が分かりません
2014/01/31(金) 13:00:11.86
>>181
>テキストに規則性が無いためにOrderByなどでは対応出来ません

最初に書いたSQLが悪かったみたいで
これで出来ました。サーセン
2014/01/31(金) 15:57:33.35
辞書順と偶然一致しただけなんじゃないの
2014/01/31(金) 18:24:40.76
そもそも
>テキスト型のフィールドで日付が含まれる文を「日付順にソート」出来るの
これが怪しいんだが
どこでこんな事教えられたんだ
2014/01/31(金) 19:17:48.82
そうだな、俺も出来るとは思ってなかった
しかし、実際その通りに動くのだから仕方がないw

だから最初に「Access独自なのか」と思ってるのだが
これが出来るのは2013だからかもしれない
2014/01/31(金) 19:30:53.46
テキスト型だから、文字数順に並び替えてるのかと思って試してみた

"本決算を2月13日"、これを"本決算を1月13日"に書き換えて試すと
日付順に並び替わる>>181の例で言うと真ん中に来る

更に"第3四半期決算を2月10日"、これを"第2四半期決算を2月10日"
とやっても日付順に並び替わるので間違いない、>>181の例で言うと一番最初に来る

しかし、2月3日と02月03日表記では並び方が変わる
具体的にはMD表記郡の中でソートされ、MMDD表記郡の中でソートされる
2014/01/31(金) 19:54:34.74
分かった。ググったら出てきた
2007から出来るらしいけど、勝手に日付を解釈してるのではなく
正確にはテキスト部分を無視して数値順に並び替えてる、らしい
2014/01/31(金) 21:40:18.27
ということはデータを統一しないといけませんね
2014/01/31(金) 22:33:10.45
ソートの問題じゃなくて暗黙の型変換の問題な気はするけど
>テキスト部分を無視して数値順に並び替えてる
普通にソートすればテキストでソートするんだが
どうやったらそんなソートするんだ?
2014/01/31(金) 22:39:33.21
どんな型変換すればそうなるのか、逆に聞いてみたい
2014/02/01(土) 13:42:22.69
あいまいな検索をしたい場合はLike *検索文字列* だけど
これだと、先頭文字列に外字が含まれてる場合は検索されない
のだけれど、回避方法はある?
2014/02/02(日) 23:15:37.86
>>191
ちゃんと検索できるっぽいけど
先頭文字に外字ってのは、検索対象のテーブルデータなのか、Likeに指定する文字列なのか?
2014/02/03(月) 09:59:08.52
>>192
先頭に含まれる外字は検索対象のテーブルデータです
文字列の中間に外字が含まれる場合は検索できるのに、
先頭だと検索されない減少が発生する…
2014/02/03(月) 16:26:19.10
>>193
かるく試したが再現しないな
OSかACCESSのバージョンによる問題か
単にお前の勘違いか
ACCESSでも限定された状況でのバグか
MDB(ACCDB)がぶっ壊れてるか

まあ、単に検索できないレコードに不正なデータが混じってるだけだと思うが
195191
垢版 |
2014/02/03(月) 18:14:37.26
一応解決したっぽい

原因として、dbmagicにodbc経由でリンクテーブルに
したのがダメらしい
リンクテーブルをやめて、テーブルデータごとインポートしたら
通常通りに検索できた

みんなありがと
196デフォルトの名無しさん
垢版 |
2014/02/03(月) 18:49:01.92
喰らえカスども、奥義「後出し特殊条件!」
2014/02/03(月) 18:58:14.00
生データインポ時に変換されただけとかは?
つまりODBC接続でもデータを相応しい変換しておけば解決できるのかも
2014/02/03(月) 22:22:24.80
そもそも外字サポートされてるのかどうかしらんが
たんにdbmagicで外字がバグってただけだろ
199デフォルトの名無しさん
垢版 |
2014/02/08(土) 21:20:31.59
SQLのReplace Intoに相当する物って有るんですか?
2014/02/10(月) 01:08:00.70
フォームに伝票基本情報
サブフォームに詳細というか明細欄(だいたい30レコードくらい)配置して、
1売上1レコードになるようにしています。
サブフォームに、
内容 金額 委託 委託金
とフィールドがあり、委託したときに入力するですが、
(この委託の部分も、
1売上(外注)1レコードにできませんか?
2014/02/10(月) 01:42:27.90
誰か翻訳
2014/02/10(月) 11:01:12.98
>>199
そもそも標準的なSQLにそんな命令聞いた事ない
ACCESSでも聞いた事ない
2014/02/10(月) 11:05:35.28
>>200
なにがしたいか良くわからんが、サブデータシートとかサブフォームのネストとか
たぶんそれでできるんじゃね
2014/02/12(水) 15:25:40.29
>>199
MySQLの独自実装か?
SQL ServerにもPostgreSQLにもないが・・・。

どんな動きかググってまで答える気にならない。
205デフォルトの名無しさん
垢版 |
2014/02/16(日) 11:19:02.87
>>202
>>204
ググレカス
2014/02/27(木) 09:57:10.80
練習がてらVBAでユーザー定義関数をつくろうかと思ったんですが思った通りのものが作れず困っています。
というか簡略化できないもんかと思っているわけですが。

OS XP
Access 2003

Function AAA(Parm01,Parm02,Parm03...) AS String ’parmは最終的にParm24までできますがここでは簡略化

If Parm01 = "S" or Parm01 = "A" then
     AAA = "1"
Exit Function
Else
     AAA = "0"
end if

End function

とすごく単純なものなのですが、Parm01〜Parm03(実際にはParmは24個)にはそれぞれS・A・B・Cのいずれかが入っているので
それを数値に変換する仕組みを作りたいのです。
SかAだったら1を。それ以外(B・C)だったら0を返す。
上には記載していませんが最終的にはParmの中身を全て合計した値を返すようにいじる予定です。

で、問題なんですが、IF文の中でParmの中身を判定しているわけですが、これをParmの数だけ作るのはなんか美しくない。
Parm01〜24をまとめて判定するにはどのようにするのが美しいでしょう。

ご教授頂ければ嬉しいです。
2014/02/27(木) 11:20:17.13
>>206
まず24個も引数取るのを美しいか疑問に思えよ
その24個をまとめたコレクションなり配列なり用意するとか
その24個にあまり関連がないないならParamArrayつかえ
(その前提でまとめて同じ引数にするのおかしいけどな)
2014/02/27(木) 11:34:23.61
>>207
ParamArrayというのがあるんですね。ありがとうございます。調べてみます!

美しさに関しては超ごもっともなんですが、如何せん元のデータをいじる権限がなくてですね。
元データの開発者をぐーで殴りたいレベル。

識別コード(一意)|24ヶ月前|23ヶ月前|22ヶ月前|21ヶ月前|・・・|当月|

ってな感じなんですよ。
んでこの○ヶ月前ってのがParmになるんですけどコレクションにせよ配列にせよ、結局は同じことなので
AAA(24ヶ月前,...当月)ってやっちまったほうが早いかなと。

大変助かりました。ありがとうございます。
2014/02/27(木) 14:06:57.28
VBAにそんなもんあんのか?構造体使うのが普通だろ
ただしVBAの構造体は遅いけどな
2014/02/27(木) 14:09:36.05
有りますね、サーセンw
2014/02/27(木) 15:11:10.30
ACCESSなら元データはテーブルじゃないのか
だったらレコードセットなり渡せば済む話だとおもうが
2014/03/12(水) 22:15:26.86ID:W4Gp9YVD
設計の悪いDBだとたまに見る形だな
一々縦横変換とかしなきゃならんやつ
2014/06/30(月) 22:53:54.92ID:VWrrXenH
スイマセン。エクセルからACCESSのテーブルにADO接続してエクセルの行(256文字以上のテキスト)をINSERTしようとしています。ACCESS側で受けるフィールドをメモ型にしましたがエクセルからINSERTしても255文字以内しか残りません。
2014/06/30(月) 22:54:27.08ID:VWrrXenH
続きです。
何かすっごく基本的な凡ミスな気がしてるのですが、何かここらあたりありますか?
エスパーな質問で申し訳ないです。。
2014/07/01(火) 00:30:57.04ID:0DCE/lPo
メモ型はSQL使うと切れたり頭の255しか判定してくれなかったりするからなあ
エクスポートインポートとかはバグで切れちゃうし
普通に文字列INSERTで入るか試してみて
216デフォルトの名無しさん
垢版 |
2014/07/21(月) 20:33:39.99ID:ufWzAtLi
171 名前:デフォルトの名無しさん[] 投稿日:2014/07/17(木) 02:49:51.87 ID:TFQGtdi0
http://www.ynsk.co.jp/nsk/knowhow/sendmail/sendmail5.htm

こちらのサイトに公開されてるアクセスのコードなんですが
Windowsの標準DLLを利用して、メールを受信、送信するプログラムを
実行したいのですが、うまく動かせません。


他のスレッドで質問しましたが、こちらに誘導されてきました。
無償で公開されてるソースコードが動かないのですが、わかる有志の方、いらっしゃいましたら
使い方おしえてください。

元スレッド:Excel VBA 質問スレ Part34
2014/07/21(月) 20:44:10.09ID:KfqA2p34
どう動かないのかぐらい書けや
218デフォルトの名無しさん
垢版 |
2014/07/21(月) 21:01:38.49ID:ufWzAtLi
●MDBファイルの内容
 ・ メールユーザ(テーブル)……利用するメールアカウントの情報を保存します。
 ※ 以下のように設定して下さい。
     メールアドレス
     POP3サーバ
     ユーザ
     パスワード
     SMTPサーバ
     リターン ← 受信時にサーバなどから通知されるメッセージが設定されます。
     受信要求 ← 0(受信しない)または-1(受信する)を設定して下さい。
     仮受信 ← -1(メールをサーバから消さない)または0(消す)を設定して下さい。

上記の説明通り、テーブルに必要事項を記入しましたが反応しません。
コンパイルはしました。UACを切ってファイルのアクセス権限をeveryoneに変更しました。。
動作確認済み環境が、Win2000とXPProのようで、office97、2000では動作の確認が取れてるみたいです。

自分の環境:Win7pro office2010pro
2014/07/21(月) 21:04:27.24ID:KfqA2p34
>>218
反応しないってどういうこと?
テーブルにセットしただけでは何も起こらなくて当然だぞ
220デフォルトの名無しさん
垢版 |
2014/07/21(月) 21:44:14.81ID:ufWzAtLi
メール受信(更新クエリというのが有るようですが、そのクエリが見当たりません。初歩的なところで止まっているような気はするのですが、外部からのデータ受ける部分のdllがwin7で動作できない理由と読んでるのですが。ご教授願います。
2014/07/21(月) 22:38:52.22ID:DpfIQ25M
 ・ B_POP3(モジュール)……メールの受信とデコードを行います。
 ※ このモジュールを実行するためには、作業用のフォルダが必要です。
    B_POP3(モジュール)の中のコーディング
    「Private Const BWorkDir As String = "c:\maildata"」と
    「Private Const BWorkTempDir As String = "c:\maildata\temp"」で
    作業用のフォルダを指定しています。
    ダウンロードしたままの設定で操作する場合、
    Cドライブ直下にmaildataというフォルダとmaildataフォルダのなかに
    tempというフォルダを作成して下さい。
    別のフォルダを利用する場合、フォルダの指定を変更して下さい。
    「Private Const c_WorkDir非消去 As Integer = -1」というコーディングがあります。
    -1のままだと、1メールごとに上記作業用のフォルダの中身を削除しません。
    1ユーザのメールが複数あって、それを受信した場合、作業用のフォルダには全件分のファイルを残しています。
    デバック時に1ユーザごとに受信すれば、中間結果を追えるので、有効なことがあります。
    ファイルには、「mail1.txt」,「mail2.txt」.....などの番号を付けています。
    ファイルと受信したメールを照合させるため、テーブルに保存したメールの「件名」にも番号を付けています。
    0にすると、作業用のフォルダには最後の1件分のファイルしか残りません。
    安定した運用段階に入れば、0にした方がディスク負荷は小さくなります
222デフォルトの名無しさん
垢版 |
2014/07/22(火) 00:54:13.17ID:aPcZAjL/
フォルダのアクセス権限の確認→念のため、everyoneに変更
ディスク負荷による動作停止の可能性→-1から0に変更したが変化なし
そもそも、動作環境は古いマシンで行われていたので
マシンスペックのリソース不足は考え難いと考えました。

もう少し、調べてみます。winsock.dllあたりが怪しいです。
パケットキャップとる以前に、ハードディスクの動作に変化が見られない。
2014/07/22(火) 02:35:29.84ID:aPcZAjL/
お騒がせしました。
原因は、accessの使い方がわからないまま
クエリが非表示であることに気付かず、試そうとしたためです。
同じ環境をVM作成し、対象のクエリのSQLクエリが見えたのでそれをぱくりました。

以上
224デフォルトの名無しさん
垢版 |
2014/07/27(日) 15:01:49.68ID:1777RigF
基本的なことと思いますが、教えてください。

Public Function FuncSyohizei(ByVal kingaku As Double) As Double
FuncSyohizei = kingaku * 1.05
End Function

これを、イミディエイトウインドウから実行する場合
?FuncSyohizei(100.0)
・・・型が一致しません。ちなみに、?FuncSyohizei(100)でも、同じ。
?FuncSyohizei 100
→ 100 ?FuncSyohizeiは、文字列とみなされ、無視された?。

ただしく、100と引数を渡したら、105と返ってくるようにするには
イミディエイトウインドウに、どう入力すればいいんでしょうか。
2014/07/27(日) 16:34:57.58ID:fFsyojt4
? @FuncSyohizei(100.0)
226224
垢版 |
2014/07/27(日) 18:14:36.50ID:02SmaVb3
いろいろやってみて、解決しました。

フォームモジュールに、これを作ったのがいけなかったようです。
標準モジュールにコピペして、?FuncSyohizei(100)したら
105が出ました。
2014/07/28(月) 00:30:37.26ID:ZjuZ26GB
Date, Now って
Functionじゃなく
Propertyなのな
2014/07/28(月) 02:29:49.00ID:4Zda3n2L
>>227
そんな事ないと思うが
もしかしたらそう言う名前のプロパティを持つものもあるのかもしれんが
ちなみに、何のプロパティだ?
2014/07/28(月) 03:01:52.49ID:ZjuZ26GB
>>228
オブジェクトブラウザ見てごらん
2014/07/28(月) 13:08:38.66ID:hu7LkKIJ
VBAの標準関数って、VBA組み込みオブジェクトのメンバして実装されてるのか
しかし、メソッドとプロパティの使い分けの基準は謎だな
231デフォルトの名無しさん
垢版 |
2014/08/20(水) 13:35:49.89ID:qA3YOzZv
Access2003でwebスクレイピングしてます。
Dim objHTML As MSHTML.HTMLDocument
Dim objDoc As MSHTML.HTMLDocument
If (objHTML Is Nothing) Then Set objHTML = New MSHTML.HTMLDocument

Set objDoc = objHTML.createDocumentFromUrl(strURL, vbNullString)

ってな感じでタグでデータを拾いたいのと、速度を重視してMSHTMLを使ってやってます。

が、createDocumentFromUrlのところでクッキーのセキュリティ警告が出てしまいます。
http://imgur.com/41wmxYi
回避する方法はないでしょうか?
インターネットオプションをいろいろといじってみたけど、お手上げ状態です。

URLを変更して呼び出すたびに毎回出てくるので、処理を開始して放置しておくことができません。
2014/08/20(水) 18:22:09.72ID:aSpRdTpy
>>231
Windows再インストール後初めてプログラム実行したとき表示されたけど
許可して以降は出てないな。
233デフォルトの名無しさん
垢版 |
2014/08/21(木) 00:46:10.94ID:Ue/CPgyd
>>232
本当ですか…

とりあえずプライバシーの設定を最低にして全てのクッキーを受け入れるにしたら、でなくなりました。

が、少し怖い…
2014/08/21(木) 02:13:22.51ID:nSwAzUL+
>>233
IEの設定を全リセットしても出ない。
Win7x64+IE10
235デフォルトの名無しさん
垢版 |
2014/08/21(木) 02:28:53.95ID:Ue/CPgyd
>>233
win7(32bit),ie11です。

今度クッキーとか履歴とか全部クリアして試します。
メッセージでくぐってもie5がってMSのサイトしかでないんですよね。

ちなみにat Homeの不動産情報サイトです。
236デフォルトの名無しさん
垢版 |
2014/08/21(木) 02:29:20.42ID:Ue/CPgyd
>>234
でした。
すんません。
2014/08/21(木) 02:32:53.11ID:SlcBJ8S5
>>231
ちょっと状況違うみたいだけど
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsMSHTML.html
にある
objHTML.DesignMode = "on"
試してみた?
2014/08/21(木) 16:24:32.22ID:Ue/CPgyd
>>237
231です。
これも見ていたのですが、オンにするとスクリプトが実行されないとあるように、
ほしい情報がとれなくなってしまいました。

コメントありがとうございました。
239デフォルトの名無しさん
垢版 |
2014/10/23(木) 15:05:01.01ID:RjBQcz8M
OLEオブジェクトにゼロデイ脆弱性、Microsoftが暫定対策プログラムを公開
http://www.forest.impress.co.jp/docs/news/20141022_672480.html
240デフォルトの名無しさん
垢版 |
2014/12/23(火) 20:32:46.30ID:n+XpzPMA
質問です。WIN7、ACCESS2010
初歩的な質問なのですが、
文字列を扱う変数では何文字の格納が可能でしょうか?
2014/12/23(火) 21:36:03.42ID:M59ZuSy9
vbaでgoogle driveにレポートをアップするやり方どこかに良いサンプルないかな。。。google driveのクライアントソフト入ってない場合でも使いたいんで。。。。
2014/12/23(火) 21:50:29.64ID:W51mY81m
>>240
2Gまでだったと思うけどヘルプ確認してくれ
243デフォルトの名無しさん
垢版 |
2014/12/23(火) 22:33:08.77ID:n+XpzPMA
>>242
ありがとうございます。
では、500文字くらいはしょぼいレベルと捉えて良さそうですね。
2014/12/24(水) 03:21:35.84ID:Yxp0O6RL
>>240,242-243
2010や64ビットバージョンで変わってなければ
固定長なら約 63KB だけどな
まあ、固定長文字列なんてめったに使う事ないけど

>>241
レポートのアップってのが具体的に何を指してるのかしらんが
そもそもVBAではHTTP通信とか直接サポートされてないから
245デフォルトの名無しさん
垢版 |
2014/12/24(水) 22:57:10.21ID:vBpiiQ3c
>>240で質問した者です。
変数に格納した、ただの文字列をテキストファイルに出力することは
可能でしょうか?
2014/12/25(木) 03:42:32.22ID:c/bUBZQc
>>245
可能か不可能かっていうならもちろん可能だけど
やり方は色々あるぞ
純粋にVBAだけならPrint#だけど、あんまりこれ使ってるの見た事ないなw
ACCES的に考えると、1回テーブルに格納してテキスト書き出しじゃないかな
247デフォルトの名無しさん
垢版 |
2014/12/25(木) 19:12:54.77ID:wTh15/U7
大量のAccessファイル含め移動するのですが、リンクテーブルのリンク先の一括張り替え機能を実装したいのですが、ご教示いただけないでしょうか?
2014/12/25(木) 19:40:21.24ID:/AazF+Ck
ADOXDB
249デフォルトの名無しさん
垢版 |
2014/12/25(木) 20:14:11.26ID:GnPnKi4m
>>246
ありがとうございます。
最終的に長めの一文をテキストファイルに出力するためだけに
ACCESSでテーブル作成したりクエリ組んだりしてるのです。
通常の使い方だとテーブルやクエリをエクスポートでいいんでしょうが
なんせ一文のみなので、printというのを試してみます。
2014/12/25(木) 22:18:03.24ID:c/bUBZQc
>>247
DAOで
CurrentDb().TableDefs("テーブル名").Connect 書き換えてから
CurrentDb().TableDefs("テーブル名").RefreshLink
2014/12/26(金) 09:32:55.94ID:4ShwS6Rf
マルチだよ
252デフォルトの名無しさん
垢版 |
2014/12/27(土) 17:01:11.46ID:Mse9t11G
>>244
レポートというかAccessから出力された成果物をGoogleDriveのクライアントソフトが
入っていない場合でもGoogleDriveにアップロードしたいということだったのでした。

そんなことをやる人もあまりいないみたいですね。
Pythonあたりでフィルをアップするプログラムを作ってアクセスから
ファイルパスを引数に持たせて実行させるようなイメージで考えてみようかとお思います。

もっとかんたんにできるぉ。。っていう神がいれば教えてたも。。。
2014/12/27(土) 18:42:52.92ID:xcx8bYiC
>>252
VBAはHTTP通信サポートしてないから、どっちにしろVBAだけではできんが
俺ならC#(かVB.NET)でDLL作ってCOM公開だな
C#のライブラリあるっぽいから、ほぼそれそのままCOM公開する形で行ける気がする
探せば誰かすでに作ってるかもしれんが
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況