- 1 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 22:53:46.88 .net]
- 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 toro.2ch.net/test/read.cgi/tech/1327763113/l50
- 132 名前:デフォルトの名無しさん [2013/09/01(日) 02:59:29.29 .net]
- Access初心者です。
VBAでExcelからデータをコマンドボタンで自動インポートさせる物を 作っています。 インポート漏れがないかのチェック処理もさせたいのですが、 どのようにすればいいかわかりません、ご教授お願いします。
- 133 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 03:24:10.08 .net]
- >>131
レコード数で比較すれば?
- 134 名前:デフォルトの名無しさん [2013/09/01(日) 03:48:29.03 .net]
- >>132
ありがとうございます。 仮に件数が合わなくてインポート漏れしたレコードを 特定するための処理をいれることはできますか?
- 135 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 03:59:24.56 .net]
- ユニークキーで差分とれよ
少しは考えろよ
- 136 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 04:00:02.93 .net]
- >>133
ユニークキーで差分とれよ 少しは考えろ
- 137 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 08:49:32.79 .net]
- インポート漏れなんてあるの?
- 138 名前:デフォルトの名無しさん [2013/09/01(日) 09:02:48.06 .net]
- 結構ある
あと勝手にデータ変換されてたりもする
- 139 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 09:25:38.41 .net]
- そうか
ならインポートしてからチェックするより自前のコードでインポートした方がいいんじゃない?
- 140 名前: 【だん吉】 [2013/09/01(日) 09:31:40.27 .net]
- 自分はそうしてる
- 141 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 10:05:17.59 .net]
- ウィザードにまかせてるとひどい目にあう
- 142 名前:デフォルトの名無しさん [2013/09/01(日) 10:35:21.42 .net]
- Access初心者なので、そのVBAのコードの書き方がわかりません
教えていただけませんか
- 143 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 10:36:54.67 .net]
- いいですよ
- 144 名前:132 mailto:sage [2013/09/01(日) 19:42:00.26 .net]
- >>131
www.nurs.or.jp/~ppoy/access/access/acX014.html
- 145 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 20:23:21.63 .net]
- インポート漏れするデータ欲しい
試してみたい
- 146 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 23:14:50.69 .net]
- 数字型のとこに文字入ってるデータとか用意したらいいんじゃね
- 147 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 23:38:03.38 .net]
- >>145
うーん、そういうデータをインポートすると普通にエラーとして扱われて 「テーブル名_$インポート エラー」 ってテーブルが生成されるから インポート漏れのレコードがわからなくて困る、なんて状況にはならないんだよね
- 148 名前:デフォルトの名無しさん mailto:sage [2013/09/02(月) 10:35:57.67 .net]
- インポート漏れのレコードがわからなくて困る、なんて状況になると言ってる人はいないが
- 149 名前:デフォルトの名無しさん [2013/09/02(月) 10:57:43.03 .net]
- おもろいな
- 150 名前:デフォルトの名無しさん [2013/09/05(木) 23:50:52.09 .net]
- DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, _
strac, strxls, True, strrange 上記でインポート エラーになるので引数のacImportのところに、 作成したインポート定義にしたいのですができるのでしょうか
- 151 名前:デフォルトの名無しさん [2013/09/07(土) 03:42:11.28 .net]
- よし
- 152 名前:デフォルトの名無しさん mailto:sage [2013/09/07(土) 16:59:26.27 .net]
- そもそもワークシート変換にインポート定義とかないだろ
- 153 名前:デフォルトの名無しさん [2013/09/09(月) 01:4
]
- [ここ壊れてます]
- 154 名前:6:05.73 .net mailto: Accessの初心者です。
レポート印刷でページヘッダーのコードが変わったタイミングで改ページしたい かつ詳細の明細行は4レコードだけで改ページさせる、両方の条件を満たせるには、 どうやって作成したらよいかご教授お願いします。 [] - [ここ壊れてます]
- 155 名前:デフォルトの名無しさん mailto:sage [2013/09/09(月) 02:08:51.60 .net]
- ページヘッダーじゃなくて、その項目でグループ化してヘッダー作る
そのヘッダーかフッターで改ページを設定する 詳細の高さを4行分になるようにヘッダ、フッタや余白を調整する つか、VBAまったく関係ない話
- 156 名前:デフォルトの名無しさん [2013/09/09(月) 07:18:08.57 .net]
- >>153
ここはVBAのスレですよね?VBAと関係ある話をしてください。 VBAとまったく関係ない話をしたのはあなたです。VBAでお願いします。
- 157 名前:デフォルトの名無しさん [2013/09/09(月) 13:03:59.99 .net]
- VBAを一言で表すと
- 158 名前:デフォルトの名無しさん mailto:sage [2013/09/09(月) 13:20:44.56 .net]
- >>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) If Me.フィールド5 <> 前コード Then Me.改ページ1.Visible = True 行数 = 0 Else Me.改ページ1.Visible = False End If 前コード = Me.フィールド5 行数 = 行数 + 1 If 行数 > 4 Then Me.改ページ2.Visible = True 行数 = 0 Else Me.改ページ2.Visible = False End If End Sub こんな感じ。この例ではフィールド5が変わったら改ページな
- 159 名前:デフォルトの名無しさん mailto:sage [2013/09/09(月) 13:22:34.74 .net]
- う。 は空白に置換してくれ
つか普通に貼り付けできなくなったのかよ
- 160 名前:デフォルトの名無しさん [2013/09/10(火) 00:16:36.47 .net]
- >>156
もう少し教えてください。。。 明細が5明細あった場合、 コードA 00001 00002 00003 00004 改ページ コードA 00005 改ページ コードB 00001 00002 00003 改ページ コードC 00001 こんな感じで出したいのですが
- 161 名前:デフォルトの名無しさん mailto:sage [2013/09/10(火) 02:26:08.63 .net]
- >>158
>>156が理解できないなら、VBAでやるのやめとけ
- 162 名前:sage [2013/09/17(火) 19:50:09.24 .net]
- Accessのクエリで、「クエリの並び替え条件を動的に変更する」方法を
教えて頂けないでしょうか。 現状は、下記のクエリを作成しましたが、並び替え条件として判定されません。 SELECT * FROM テーブル1 ORDER BY FORMS!画面1!テキスト1.Value よろしくお願いします。
- 163 名前:デフォルトの名無しさん mailto:sage [2013/09/17(火) 20:22:56.49 .net]
- >>160
SELECT * FROM テーブル1 ORDER BY FORMS!画面1!テキスト1.Value これってどこに書いてるの?
- 164 名前:デフォルトの名無しさん mailto:sage [2013/09/17(火) 21:44:28.61 .net]
- >>160
どうしてもやりたいならQueryDefとか使えばできるかもしれんが 動的にSQLつくってDoCmd.RunSqlでやる方がいいんじゃね
- 165 名前:160 mailto:sage [2013/09/17(火) 22:09:44.82 .net]
- >>161
Accessの「クエリ」で定義していました。 >>162 ご指摘を受けた点を参考にクエリを作成した所、うまく行きました。 ありがとうございます。
- 166 名前:デフォルトの名無しさん [2013/10/20(日) 21:44:25.62 .net]
- 株価のデータベースを作りVBAで銘柄の抽出をしています
VBAを呼ぶ度にSQLで株価データを読み込んでるので日に何度もやると結構無駄です そこでフォームをロードした時に纏めて銘柄毎のクラスオブジェクトを作り フォームをアンロードするまで保持したいのですが可能でしょうか? 変数の保持はStaticで良いようですが、配列化してるオブジェクトの保持はどのようにするのでしょうか?
- 167 名前:デフォルトの名無しさん [2013/10/20(日) 22:06:18.65 .net]
- view
- 168 名前:デフォルトの名無しさん mailto:sage [2013/10/20(日) 22:10:51.15 .net]
- すごいVBA発見w
esuafai.digi2.jp/
- 169 名前:164 mailto:sage [2013/10/20(日) 22:56:11.74 .net]
- フォームと連動させるのではなく、最初に実行させる時にStaticで保持し
2度目からオブジェクトが空ではないならデータを取りに行かずに 値渡しするようにして解決しました
- 170 名前:デフォルトの名無しさん mailto:sage [2013/10/21(月) 00:11:20.78 .net]
- なんか色々つっこみどろこ満載だな
まあ、動いてるならいいか
- 171 名前:デフォルトの名無しさん [2013/11/05(火) 18:56:30.39 .net]
- VBAでリモートのデータベースにトランザクション処理を開始して、コミット/ロールバックするのはわかりました。
これをマクロのアクションだけではできないですよね。 Vbaを嫌がる仲間が同一プロジェクト内にいるので。
- 172 名前:デフォルトの名無しさん [2013/11/16(土) 13:17:48.50 .net]
- 初心者ですみません。コンパイルってなんですか?
- 173 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 13:19:54.03 .net]
- 疲労困憊る
- 174 名前:デフォルトの名無しさん [2013/11/16(土) 13:40:52.90 .net]
- コンパイルダー・オン
- 175 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 15:59:42.46 .net]
- 昔広島にあったSTGや落ちゲーキャラゲー開発してた会社
- 176 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 17:51:44.57 .net]
- あったなぁ
- 177 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 18:27:38.04 .net]
- 脳みそコネコネの会社?なくなったのか?
- 178 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 18:29:57.41 .net]
- マジレスしとこう
>>170 ソースプログラムを実行可能形式に変換する事 簡単に言えば、お前が書いたプログラムを実行できるように準備する作業 ACCESSなら勝手にやってくれるから、意識する必要はない
- 179 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 19:25:11.96 .net]
- >>175
1998年に無くなって、落ちゲー関係はセガが買い取った
- 180 名前:デフォルトの名無しさん [2013/11/16(土) 21:35:05.65 .net]
- >>176
なるほど。では、あえてコンパイルという作業をしなくてもOK ってことですね。 あるがとうございます!
- 181 名前:デフォルトの名無しさん mailto:sage [2013/11/25(月) 21:45:32.92 .net]
- Accessの場合、ソースを中間コードに変換する作業をコンパイルと呼んでる。
その過程でソースにエラーがあるかどうかをチェックするから 実行時エラーとかの対策にはコンパイル通しておいた方が良いと思う。
- 182 名前:デフォルトの名無しさん mailto:sage [2013/11/26(火) 02:50:39.57 .net]
- 実行時エラーってのは普通、コンパイルは通った後に発生するエラーの事を言うんだが
まあ、実行時にコンパイルエラー出るのもなんだし、事前にコンパイルしとけってのは同意するが
- 183 名前:デフォルトの名無しさん [2014/01/31(金) 12:48:48.93 .net]
- Access独自の便利機能なのか分かりませんが
テキスト型のフィールドで日付が含まれる文を「日付順にソート」出来るのですが これをVBAでやるにはどうしたら良いのでしょうか? テキストに規則性が無いためにOrderByなどでは対応出来ません テキストフィールドに入ってる文字列の例: "第3四半期決算を1月10日に発表済み" "第3四半期決算を2月10日" "本決算を2月13日" "---" このようになってても、テーブルのフィールドを選択してソートが出来るとは初めて知ったのですが VBAからやる方法が分かりません
- 184 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 13:00:11.86 .net]
- >>181
>テキストに規則性が無いためにOrderByなどでは対応出来ません 最初に書いたSQLが悪かったみたいで これで出来ました。サーセン
- 185 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 15:57:33.35 .net]
- 辞書順と偶然一致しただけなんじゃないの
- 186 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 18:24:40.76 .net]
- そもそも
>テキスト型のフィールドで日付が含まれる文を「日付順にソート」出来るの これが怪しいんだが どこでこんな事教えられたんだ
- 187 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 19:17:48.82 .net]
- そうだな、俺も出来るとは思ってなかった
しかし、実際その通りに動くのだから仕方がないw だから最初に「Access独自なのか」と思ってるのだが これが出来るのは2013だからかもしれない
- 188 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 19:30:53.46 .net]
- テキスト型だから、文字数順に並び替えてるのかと思って試してみた
"本決算を2月13日"、これを"本決算を1月13日"に書き換えて試すと 日付順に並び替わる>>181の例で言うと真ん中に来る 更に"第3四半期決算を2月10日"、これを"第2四半期決算を2月10日" とやっても日付順に並び替わるので間違いない、>>181の例で言うと一番最初に来る しかし、2月3日と02月03日表記では並び方が変わる 具体的にはMD表記郡の中でソートされ、MMDD表記郡の中でソートされる
- 189 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 19:54:34.74 .net]
- 分かった。
- 190 名前:Oグったら出てきた
2007から出来るらしいけど、勝手に日付を解釈してるのではなく 正確にはテキスト部分を無視して数値順に並び替えてる、らしい [] - [ここ壊れてます]
- 191 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 21:40:18.27 .net]
- ということはデータを統一しないといけませんね
- 192 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 22:33:10.45 .net]
- ソートの問題じゃなくて暗黙の型変換の問題な気はするけど
>テキスト部分を無視して数値順に並び替えてる 普通にソートすればテキストでソートするんだが どうやったらそんなソートするんだ?
- 193 名前:デフォルトの名無しさん mailto:sage [2014/01/31(金) 22:39:33.21 .net]
- どんな型変換すればそうなるのか、逆に聞いてみたい
- 194 名前:デフォルトの名無しさん mailto:sage [2014/02/01(土) 13:42:22.69 .net]
- あいまいな検索をしたい場合はLike *検索文字列* だけど
これだと、先頭文字列に外字が含まれてる場合は検索されない のだけれど、回避方法はある?
- 195 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 23:15:37.86 .net]
- >>191
ちゃんと検索できるっぽいけど 先頭文字に外字ってのは、検索対象のテーブルデータなのか、Likeに指定する文字列なのか?
- 196 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 09:59:08.52 .net]
- >>192
先頭に含まれる外字は検索対象のテーブルデータです 文字列の中間に外字が含まれる場合は検索できるのに、 先頭だと検索されない減少が発生する…
- 197 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 16:26:19.10 .net]
- >>193
かるく試したが再現しないな OSかACCESSのバージョンによる問題か 単にお前の勘違いか ACCESSでも限定された状況でのバグか MDB(ACCDB)がぶっ壊れてるか まあ、単に検索できないレコードに不正なデータが混じってるだけだと思うが
- 198 名前:191 mailto:sage [2014/02/03(月) 18:14:37.26 .net]
- 一応解決したっぽい
原因として、dbmagicにodbc経由でリンクテーブルに したのがダメらしい リンクテーブルをやめて、テーブルデータごとインポートしたら 通常通りに検索できた みんなありがと
- 199 名前:デフォルトの名無しさん [2014/02/03(月) 18:49:01.92 .net]
- 喰らえカスども、奥義「後出し特殊条件!」
- 200 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 18:58:14.00 .net]
- 生データインポ時に変換されただけとかは?
つまりODBC接続でもデータを相応しい変換しておけば解決できるのかも
- 201 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 22:22:24.80 .net]
- そもそも外字サポートされてるのかどうかしらんが
たんにdbmagicで外字がバグってただけだろ
- 202 名前:デフォルトの名無しさん [2014/02/08(土) 21:20:31.59 .net]
- SQLのReplace Intoに相当する物って有るんですか?
- 203 名前:デフォルトの名無しさん mailto:sage [2014/02/10(月) 01:08:00.70 .net]
- フォームに伝票基本情報
サブフォームに詳細というか明細欄(だいたい30レコードくらい)配置して、 1売上1レコードになるようにしています。 サブフォームに、 内容 金額 委託 委託金 とフィールドがあり、委託したときに入力するですが、 (この委託の部分も、 1売上(外注)1レコードにできませんか?
- 204 名前:デフォルトの名無しさん mailto:sage [2014/02/10(月) 01:42:27.90 .net]
- 誰か翻訳
- 205 名前:デフォルトの名無しさん mailto:sage [2014/02/10(月) 11:01:12.98 .net]
- >>199
そもそも標準的なSQLにそんな命令聞いた事ない ACCESSでも聞いた事ない
- 206 名前:デフォルトの名無しさん mailto:sage [2014/02/10(月) 11:05:35.28 .net]
- >>200
なにがしたいか良くわからんが、サブデータシートとかサブフォームのネストとか たぶんそれでできるんじゃね
- 207 名前:デフォルトの名無しさん mailto:sage [2014/02/12(水) 15:25:40.29 .net]
- >>199
MySQLの独自実装か? SQL ServerにもPostgreSQLにもないが・・・。 どんな動きかググってまで答える気にならない。
- 208 名前:デフォルトの名無しさん [2014/02/16(日) 11:19:02.87 .net]
- >>202
>>204 ググレカス
- 209 名前:デフォルトの名無しさん mailto:sage [2014/02/27(木) 09:57:10.80 .net]
- 練習がてらVBAでユーザー定義関数をつくろうかと思ったんですが思った通りのものが作れず困っています。
というか簡略化できないもんかと思っているわけですが。 OS XP Access 2003 Function AAA(Parm01,Parm02,Parm03...) AS String ’parmは最終的にParm24までできますがここでは簡略化 If
- 210 名前: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をまとめて判定するにはどのようにするのが美しいでしょう。 ご教授頂ければ嬉しいです。 [] - [ここ壊れてます]
- 211 名前:デフォルトの名無しさん mailto:sage [2014/02/27(木) 11:20:17.13 .net]
- >>206
まず24個も引数取るのを美しいか疑問に思えよ その24個をまとめたコレクションなり配列なり用意するとか その24個にあまり関連がないないならParamArrayつかえ (その前提でまとめて同じ引数にするのおかしいけどな)
- 212 名前:デフォルトの名無しさん mailto:sage [2014/02/27(木) 11:34:23.61 .net]
- >>207
ParamArrayというのがあるんですね。ありがとうございます。調べてみます! 美しさに関しては超ごもっともなんですが、如何せん元のデータをいじる権限がなくてですね。 元データの開発者をぐーで殴りたいレベル。 識別コード(一意)|24ヶ月前|23ヶ月前|22ヶ月前|21ヶ月前|・・・|当月| ってな感じなんですよ。 んでこの○ヶ月前ってのがParmになるんですけどコレクションにせよ配列にせよ、結局は同じことなので AAA(24ヶ月前,...当月)ってやっちまったほうが早いかなと。 大変助かりました。ありがとうございます。
- 213 名前:デフォルトの名無しさん mailto:sage [2014/02/27(木) 14:06:57.28 .net]
- VBAにそんなもんあんのか?構造体使うのが普通だろ
ただしVBAの構造体は遅いけどな
- 214 名前:デフォルトの名無しさん mailto:sage [2014/02/27(木) 14:09:36.05 .net]
- 有りますね、サーセンw
- 215 名前:デフォルトの名無しさん mailto:sage [2014/02/27(木) 15:11:10.30 .net]
- ACCESSなら元データはテーブルじゃないのか
だったらレコードセットなり渡せば済む話だとおもうが
- 216 名前:デフォルトの名無しさん mailto:sage [2014/03/12(水) 22:15:26.86 ID:W4Gp9YVD.net]
- 設計の悪いDBだとたまに見る形だな
一々縦横変換とかしなきゃならんやつ
- 217 名前:デフォルトの名無しさん [2014/06/24(火) 13:28:55.21 ID:DxDJQaB9C]
- Accessをメインに仕事されてる方たちに質問。(データ入力は別)
年収どれくらいですか?
- 218 名前:デフォルトの名無しさん mailto:sage [2014/06/30(月) 22:54:27.08 ID:VWrrXenH.net]
- 続きです。
何かすっごく基本的な凡ミスな気がしてるのですが、何かここらあたりありますか? エスパーな質問で申し訳ないです。。
- 219 名前:デフォルトの名無しさん mailto:sage [2014/07/01(火) 00:30:57.04 ID:0DCE/lPo.net]
- メモ型はSQL使うと切れたり頭の255しか判定してくれなかったりするからなあ
エクスポートインポートとかはバグで切れちゃうし 普通に文字列INSERTで入るか試してみて
- 220 名前:デフォルトの名無しさん [2014/07/21(月) 20:33:39.99 ID:ufWzAtLi.net]
- 171 名前:デフォルトの名無しさん[] 投稿日:2014/07/17(木) 02:49:51.87 ID:TFQGtdi0
www.ynsk.co.jp/nsk/knowhow/sendmail/sendmail5.htm こちらのサイトに公開されてるアクセスのコードなんですが Windowsの標準DLLを利用して、メールを受信、送信するプログラムを 実行したいのですが、うまく動かせません。 他のスレッドで質問しましたが、こちらに誘導されてきました。 無償で公開されてるソースコードが動かないのですが、わかる有志の方、いらっしゃいました
- 221 名前:ら
使い方おしえてください。 元スレッド:Excel VBA 質問スレ Part34 [] - [ここ壊れてます]
- 222 名前:デフォルトの名無しさん mailto:sage [2014/07/21(月) 20:44:10.09 ID:KfqA2p34.net]
- どう動かないのかぐらい書けや
- 223 名前:デフォルトの名無しさん [2014/07/21(月) 21:01:38.49 ID:ufWzAtLi.net]
- ●MDBファイルの内容
・ メールユーザ(テーブル)……利用するメールアカウントの情報を保存します。 ※ 以下のように設定して下さい。 メールアドレス POP3サーバ ユーザ パスワード SMTPサーバ リターン ← 受信時にサーバなどから通知されるメッセージが設定されます。 受信要求 ← 0(受信しない)または-1(受信する)を設定して下さい。 仮受信 ← -1(メールをサーバから消さない)または0(消す)を設定して下さい。 上記の説明通り、テーブルに必要事項を記入しましたが反応しません。 コンパイルはしました。UACを切ってファイルのアクセス権限をeveryoneに変更しました。。 動作確認済み環境が、Win2000とXPProのようで、office97、2000では動作の確認が取れてるみたいです。 自分の環境:Win7pro office2010pro
- 224 名前:デフォルトの名無しさん mailto:sage [2014/07/21(月) 21:04:27.24 ID:KfqA2p34.net]
- >>218
反応しないってどういうこと? テーブルにセットしただけでは何も起こらなくて当然だぞ
- 225 名前:デフォルトの名無しさん [2014/07/21(月) 21:44:14.81 ID:ufWzAtLi.net]
- メール受信(更新クエリというのが有るようですが、そのクエリが見当たりません。初歩的なところで止まっているような気はするのですが、外部からのデータ受ける部分のdllがwin7で動作できない理由と読んでるのですが。ご教授願います。
- 226 名前:デフォルトの名無しさん mailto:sage [2014/07/21(月) 22:38:52.22 ID:DpfIQ25M.net]
- ・ 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にした方がディスク負荷は小さくなります
- 227 名前:デフォルトの名無しさん [2014/07/22(火) 00:54:13.17 ID:aPcZAjL/.net]
- フォルダのアクセス権限の確認→念のため、everyoneに変更
ディスク負荷による動作停止の可能性→-1から0に変更したが変化なし そもそも、動作環境は古いマシンで行われていたので マシンスペックのリソース不足は考え難いと考えました。 もう少し、調べてみます。winsock.dllあたりが怪しいです。 パケットキャップとる以前に、ハードディスクの動作に変化が見られない。
- 228 名前:デフォルトの名無しさん mailto:sage [2014/07/22(火) 02:35:29.84 ID:aPcZAjL/.net]
- お騒がせしました。
原因は、accessの使い方がわからないまま クエリが非表示であることに気付かず、試そうとしたためです。 同じ環境をVM作成し、対象のクエリのSQLクエリが見えたのでそれをぱくりました。
- 229 名前:以上 []
- [ここ壊れてます]
- 230 名前:デフォルトの名無しさん [2014/07/27(日) 15:01:49.68 ID:1777RigF.net]
- 基本的なことと思いますが、教えてください。
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と返ってくるようにするには イミディエイトウインドウに、どう入力すればいいんでしょうか。
- 231 名前:デフォルトの名無しさん mailto:sage [2014/07/27(日) 16:34:57.58 ID:fFsyojt4.net]
- ? @FuncSyohizei(100.0)
- 232 名前:224 mailto:sage [2014/07/27(日) 18:14:36.50 ID:02SmaVb3.net]
- いろいろやってみて、解決しました。
フォームモジュールに、これを作ったのがいけなかったようです。 標準モジュールにコピペして、?FuncSyohizei(100)したら 105が出ました。
|

|