Access VBA質問箱 IV

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

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


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

【5378】Re:Specification Nameについて
回答  小僧  - 05/6/14(火) 16:34 -

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

とりあえずこちらに回答をつけます。

>テキストファイルのインポートのときSpecification Nameが記述されているのですが、
>この記述の定義は何処にあるのでしょうか?

[ツール] → [オプション] → [表示]タブの「システムオブジェクト」にチェックを入れると表示される

「MSysIMEXSpecs」「MSysIMEXColumns」に値が格納されている模様です。

>出力テーブルの定義を修正しようとしております。

[挿入] → [テーブル] → [テーブルのインポート] で対象ファイルを選び [インポート]

テキストインポートウィザードが表示されたら左下の「設定」をクリック

細かい定義を設定して「保存」

にて新しい定義を作ってみるのはいかがでしょうか?
・ツリー全体表示

【5377】インポート定義の定義方法
質問  和光TH  - 05/6/14(火) 15:18 -

引用なし
パスワード
   テキストファイルのインポート定義は何処にどのように作ればよいのでしょうか?
・ツリー全体表示

【5376】Re:Excelファイル範囲指定のインポート方法
回答  小僧  - 05/6/14(火) 14:28 -

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

インポートをどうやって行うのかがご提示されていませんが
「TransferSpreadsheet」メソッドを使うとすると
第6引数に「Range」を指定できます。

問題は Range の範囲なわけですが、

フィールド数が固定であれば(例えば10個)、「B5:K65536」の様に指定して
取り込んだ後Nullの行をクエリで削除する。

フィールド数が可変であったり、無駄なレコードは取り込みたくないというのであれば
オートメーションで Excel を操作する必要が出て来ると思われます。
その場合は ExcelVBA の知識も必要になってきます。

オートメーションについて解らないことがありましたら再度ご質問ください。
・ツリー全体表示

【5375】Specification Nameについて
質問  和光TH  - 05/6/14(火) 14:18 -

引用なし
パスワード
   テキストファイルのインポートのときSpecification Nameが記述されているのですが、この記述の定義は何処にあるのでしょうか?
インポートしようとするテキストファイルの項目が多くなり、なおかつ項目位置が変わってしまつた為、インポートできなくなり出力テーブルの定義を修正しようとしております。
お分かりの方宜しくお願いいたします。
・ツリー全体表示

【5374】Re:ネット上にあるJPEG画像をフォームに表...
回答  YU-TANG WEB  - 05/6/14(火) 13:34 -

引用なし
パスワード
   こんばんは、YU-TANG です。

> ネット上にあるJPEG画像を検索して、最大10枚を
> ひとつのフォーム上に表示したいのです。
> そんなことができますか?教えて下さい。

出来ますが、Web 開発の基礎が無いと相当苦労すると思います。

小僧さんのレスが正攻法になると思われますが、一応手抜き案。

たとえば Goo で画像検索をすると、URL にパラメータが埋め込まれている
ことが分かると思います。
これを応用して、任意の条件で合成した URL を WebBrowser コントロール
に渡せば、検索結果がそのまま表示されます。
以下は検索キーワード「MS-Access Web」検索した結果を 10 画像/頁で表示
した場合の URL です。

http://bsearch.goo.ne.jp/image.jsp?MT=MS-Access+Web&DC=10&QGA=1&QGR=1&FT=jpg&SM=MC&FILTER=1&IMGSZ=&IMGC=&CK=0&OCR=1

主なパラメータを見ていくと…

MT パラメータの後ろが検索語句。
DC パラメータの後ろが表示画像数/ページ。
FT パラメータの後ろが画像の種類(jpg)。

これはたまたま Goo の場合の話ですが、他のポータルサイトも似たような
ものなので、URL を見ればだいたい構成が分かるでしょう。

難点はポータルサイトの検索結果をそのまま出しているだけというのが
バレバレなところですが、お手軽さという点では一考の価値有りかとは
思います。

ちなみに DHTML を操作すると、ポータルサイトであることを分からなく
出来ますが、話が Access から完全に逸れるので、興味があれば DHTML を
勉強してみてください。
・ツリー全体表示

【5373】Excelファイル範囲指定のインポート方法
質問  sakaiII  - 05/6/14(火) 12:35 -

引用なし
パスワード
   お世話になります。
新しい問題に直面しています。どう考えても、わからなくて、よろしくお願いします。
質問:Excelファイルの範囲を指定して、インポートしたい。
   例、Adsl.xlsのセルB5を基点(スタート点)にして、インポートします。
   通常、セルA1は基点(スタート点)ですが、B5に変えた場合は、
   可能でしょうか?よろしくお願いします。

基点セルB5:B5,C5,・・・⇒データのフィールドになる
      B6,C6,・・・⇒データです
       ・
       ・
       ・

   
・ツリー全体表示

【5372】Re:シェア率の算出方法
お礼  sakaiII  - 05/6/14(火) 12:19 -

引用なし
パスワード
   解決しました。
ありがとうございました。
・ツリー全体表示

【5371】Re:VBAのコードの意味が不明です
お礼  トミー  - 05/6/14(火) 11:56 -

引用なし
パスワード
   ▼T さん:
>▼トミー さん:
>>業者マスタの登録フォームを例題を解析しながら作成中ですが、次のコードの意味がわかりません。どなたか初心者に分かるように教えて下さい。
>>
>>Private Sub 業者番号_KeyDown(KeyCode As Integer, Shift As Integer)
>>
>>  If KeyCode = &HD then  <--- Keycode と &HD の意味が不明
>KeyCodeは押されたキーのAsciiコード
>&HDは改行のコード(ENTERキー)
>
>こんな感じでよろしいでしょうか?
>
>
>>
>>   Me.cmdEnd.SetFocus
>>   Me.業者番号.SetFocus
>>
>>  End If
>>End Sub
>>
>>宜しくお願いします。
>アスキーコード表ってのをどこからか探してみてください。


ありがとうございます。アスキーコード表を探して見ます。
・ツリー全体表示

【5370】Re:VBAのコードの意味が不明です
回答  T  - 05/6/14(火) 11:01 -

引用なし
パスワード
   ▼トミー さん:
>業者マスタの登録フォームを例題を解析しながら作成中ですが、次のコードの意味がわかりません。どなたか初心者に分かるように教えて下さい。
>
>Private Sub 業者番号_KeyDown(KeyCode As Integer, Shift As Integer)
>
>  If KeyCode = &HD then  <--- Keycode と &HD の意味が不明
KeyCodeは押されたキーのAsciiコード
&HDは改行のコード(ENTERキー)

こんな感じでよろしいでしょうか?


>
>   Me.cmdEnd.SetFocus
>   Me.業者番号.SetFocus
>
>  End If
>End Sub
>
>宜しくお願いします。
アスキーコード表ってのをどこからか探してみてください。
・ツリー全体表示

【5369】VBAのコードの意味が不明です
質問  トミー  - 05/6/14(火) 10:53 -

引用なし
パスワード
   業者マスタの登録フォームを例題を解析しながら作成中ですが、次のコードの意味がわかりません。どなたか初心者に分かるように教えて下さい。

Private Sub 業者番号_KeyDown(KeyCode As Integer, Shift As Integer)

  If KeyCode = &HD then  <--- Keycode と &HD の意味が不明

   Me.cmdEnd.SetFocus
   Me.業者番号.SetFocus

  End If
End Sub

宜しくお願いします。
・ツリー全体表示

【5368】Re:ネット上にあるJPEG画像をフォームに表...
発言  小僧  - 05/6/13(月) 12:01 -

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

YU-TANG さんのサイトに「Web ページをダウンロードする方法」がありますので
リンクを紹介させていただきます。

http://www.f3.dion.ne.jp/~element/msaccess/AcTipsVbaXMLHTTP.html

これを使用させて頂き、HTMLソースを取得して

1) 画像(.jpg、.gif等)をInstr関数で探し

2) 「"」が出るまで1文字ずつ戻って画像のパスを取得

3) 相対パスを絶対パスに置換

4) WebBrowserコントロールの「Navigate」を使用して画像を表示

で行けると思われます。

とはいえかなり効率の悪い方法だと思われますので、識者の方の回答をお待ちしています。
・ツリー全体表示

【5365】ネット上にあるJPEG画像をフォームに表示
質問  うさこ  - 05/6/12(日) 18:25 -

引用なし
パスワード
   いつもお世話様です。(Windows2000:Access2000 です)

こんなことができるかどうかもわからなくて悩んでいます。

ネット上にあるJPEG画像を検索して、最大10枚を
ひとつのフォーム上に表示したいのです。
そんなことができますか?教えて下さい。
よろしくお願いしますm(_ _)m
・ツリー全体表示

【5364】Re:クエリの計算方法について
回答  ももんが E-MAIL  - 05/6/12(日) 15:15 -

引用なし
パスワード
   Gin_II さん,小僧さんありがとうございます。

[a]に値が空白なら「0」値が入っていれば「1」
[b]に値が空白なら「0」値が入っていれば「1」
[c]に値が空白なら「0」値が入っていれば「1」

確かにこれでも成立する計算になります。試してみたところ、思い通りの結果になりました。

また、私の考えていた式も「"」をとってみたところ、同じ結果が得られました。
分からないときは他の方々に相談してみると以外に簡単な結果が得られるのでとても助かります。

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

【5363】Re:クエリの計算方法について
回答  小僧  - 05/6/12(日) 9:35 -

引用なし
パスワード
   ▼ももんが さん、Gin_II さん:
おはようございます。

>>式もややこしく

という事で発想の転換をお勧めします。

[a]に値が空白なら「0」値が入っていれば「1」
[b]に値が空白なら「0」値が入っていれば「1」
[c]に値が空白なら「0」値が入っていれば「1」

を入れ足し算してみる。

IIf(IsNull([A]),0,1)+IIf(IsNull([B]),0,1)+IIf(IsNull([C]),0,1)

でいかがでしょうか?
・ツリー全体表示

【5362】Re:シェア率の算出方法
回答  小僧  - 05/6/12(日) 9:25 -

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

>デザインビューで開くと、SQL文だけです。

当方のAc2002環境だとデザインビューが出たので申し訳ないです。


SELECT Q.メーカー名, Q.メーカー名_1, Q.メーカー名_2,
Q.数量の合計, Format([数量シェア%]*100,"0.00") AS 式1,
Q.金額の合計, Format([金額シェア%]*100,"0.00") AS 式2
FROM [
SELECT '合計' AS メーカー名, ' ' AS メーカー名_1, ' ' AS メーカー名_2,
Sum(Table_Area.数量) AS 数量の合計,1 AS 数量シェア% ,
Sum(Table_Area.金額) AS 金額の合計, 1 AS 金額シェア%
FROM Table_Area
UNION ALL
SELECT Table_Area.メーカー名, Table_Area.メーカー名_1, Table_Area.メーカー名_2,
Table_Area.数量, Table_Area.数量/DSum('数量',"Table_Area") AS 数量シェア%,
Table_Area.金額, Table_Area.金額/DSum('金額',"Table_Area") AS 金額シェア%
FROM Table_Area
]. AS Q;

もしくは

SELECT Q.メーカー名, Q.メーカー名_1, Q.メーカー名_2,
Q.数量の合計, Format([数量シェア%],"Percent") AS 式1,
Q.金額の合計, Format([金額シェア%],"Percent") AS 式2
FROM [
SELECT '合計' AS メーカー名, ' ' AS メーカー名_1, ' ' AS メーカー名_2,
Sum(Table_Area.数量) AS 数量の合計,1 AS 数量シェア% ,
Sum(Table_Area.金額) AS 金額の合計, 1 AS 金額シェア%
FROM Table_Area
UNION ALL
SELECT Table_Area.メーカー名, Table_Area.メーカー名_1, Table_Area.メーカー名_2,
Table_Area.数量, Table_Area.数量/DSum('数量',"Table_Area") AS 数量シェア%,
Table_Area.金額, Table_Area.金額/DSum('金額',"Table_Area") AS 金額シェア%
FROM Table_Area
]. AS Q;

でいかがでしょうか?
・ツリー全体表示

【5361】Re:クエリの計算方法について
回答  Gin_II  - 05/6/12(日) 4:23 -

引用なし
パスワード
   >式もややこしく、どこが間違っているのかさっぱり分かりません。
>どこが間違えているのでしょうか?

IIf("(IsNull([a]) And IsNull([b]) And IsNull([c]))",
  "0",
  "IIf("(IsNull([a]) and IsNull([b])) Or (IsNull([a]) Or IsNull([c])) Or (IsNull([b]) And IsNull([c]))",
     "1",
     "IIf("IsNull([a]) or IsNull([b]) Or IsNull[c])",
       "2",
       "3")
     ")
   ")

こうすると、ちょっと分かりやすいかな。
少なくとも、比較式の部分に引用符(")をつかっているのは間違っていますよね。
・ツリー全体表示

【5360】クエリの計算方法について
質問  ももんが E-MAIL  - 05/6/11(土) 21:35 -

引用なし
パスワード
   テーブル1があり、1レコードの中にa,b,cというフィールドがあるとします。

クエリを使って
1 a,b,c共に空白だったら 0
2 a,b,cいづれか2つが空白だったら 1
3 a,b,cいづれか1つが空白だったら 2
4 1〜3のどれにも当てはまらなかったら 3

という数字を出すようにクエリで計算をし、その答えをほかのテーブルに追加しようと思っています。

そこでよい方法が思い浮かばず,
下のような計算方法(IIF関数)を使いましたが、計算するどころか「かっこの使い方が不正です」などとエラーがでてしまい、上手くいきません。いろいろと試してみましたがダメでした。

IIf("(IsNull([a]) And IsNull([b]) And IsNull([c]))","0","IIf("(IsNull([a]) and IsNull([b])) Or (IsNull([a]) Or IsNull([c])) Or (IsNull([b]) And IsNull([c]))","1","IIf("IsNull([a]) or IsNull([b]) Or IsNull[c])","2","3")")")

式もややこしく、どこが間違っているのかさっぱり分かりません。
どこが間違えているのでしょうか?

また、もっと他によい方法はありますでしょうか?
・ツリー全体表示

【5359】Re:レコードの内容で新たな列に割り付ける
お礼  えるてそろ  - 05/6/11(土) 14:11 -

引用なし
パスワード
   ▼小僧 さん:
完璧でした。
希望どおりのデータを得ることが出来ました。
処理速度も数十秒で終わり、申し分ありません。

こちらのわがままを たくさん聞いていただいて 有難うございました。
・ツリー全体表示

【5358】Re:レコードの内容で新たな列に割り付ける
回答  hatena  - 05/6/11(土) 12:10 -

引用なし
パスワード
   横から失礼します。
小僧さんの

>> 2) 取り込む際に加工しながら取込む。

の方法で考えてみました。

事前に下記のようなテーブルを作成しておきます。

テーブル T_Log 
フィールド LogDATE (日付/時刻型)
      LogTime (日付/時刻型)
      METHOD (テキスト型)
      SERVER (テキスト型)
      USER  (テキスト型)
      CLIENID (テキスト型)
      SERVERIP(テキスト型)
      DOMAIN (テキスト型)
      LogPATH (テキスト型)


Public Sub 加工しながら取込む()
Dim Rs As DAO.Recordset
Dim I As Long
Dim L As String

  Open "C:\temp\Log.txt" For Input As #1
  Set Rs = CurrentDb.OpenRecordset("T_Log")
  
  Do While Not EOF(1)
    For I = 1 To 9
      Line Input #1, L
      Select Case I
      Case 1
        Rs.AddNew
        Rs!LogDate = CDate(Mid(L, 6, 8))
        Rs!LogTime = CDate(Mid(L, 15, 8))
      Case 2
        Rs!METHOD = Mid(L, 8)
      Case 3
        Rs!SERVER = Mid(L, 8)
      Case 4
        Rs!USER = Mid(L, 6)
      Case 5
        Rs!CLIENTIP = Mid(L, 10)
      Case 6
        Rs!SERVERIP = Mid(L, 10)
      Case 7
        Rs!DOMAIN = Mid(L, 8)
      Case 8
        Rs!LogPath = Mid(L, 6)
        Rs.Update
      End Select
    Next
  Loop
  Close #1
  Rs.Close: Set Rs = Nothing
End Sub
・ツリー全体表示

【5357】Re:レコードの内容で新たな列に割り付ける
お礼  えるてそろ  - 05/6/10(金) 22:44 -

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

>「DATE」「PATH」などは予約語なので名前を変えてあります。
>外していたら申し訳ないです。

とんでもないです。
お忙しいところ、本当に有り難うございました。
明日 早速試してみます。
又結果をお知らせします。
・ツリー全体表示

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