Access VBA質問箱 IV

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

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


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

【10685】Re:クエリデータをaddnewでテーブルに入...
発言  トキドキ徹  - 08/11/7(金) 15:42 -

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

> For ix = 0 To rs1.Fields.Count - 1
> rs2(ix) = rs1(ix)
> Next ix
>         
> rs2.Update
>
> としたところ上手く所定の動作が出来るようになりました

これより、テーブルのフィールド構成は同じものと想像します。
よって

Dim mySQL AS String
mySQL = "INSERT INTO 追加先テーブル " & _
    "SELECT * FROM 追加元テーブル "
CurrentDB.Excute mySQL, dbFailOnError

とすると良いでしょう
・ツリー全体表示

【10684】EXCELへの数式の記述について教えて...
質問  NEMO  - 08/11/7(金) 15:37 -

引用なし
パスワード
   ExcelのA1セルに文字を入力する場合は
objsheet.range("A1").Value = "AAA"

数式を入力するにはどのように記述するのでしょうか?
A1+B1の数式をC1に記述するには

objsheet.range("C1").Value =

よろしく御願いします。
・ツリー全体表示

【10683】Re:フラグ更新について(更新クエリ?)
発言  トキドキ徹  - 08/11/7(金) 15:26 -

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

先に回答したとおり、分かりません。
ゴメンなさい。
・ツリー全体表示

【10682】Re:クエリデータをaddnewでテーブルに入...
質問  ver45  - 08/11/7(金) 10:22 -

引用なし
パスワード
   すみません 改めて失礼致します。

これをSQLを用いてやりたい場合はどうしたら良いでしょうか 教えていただけませんか?
・ツリー全体表示

【10681】Re:書き込み処理
お礼  お手上げ  - 08/11/7(金) 8:55 -

引用なし
パスワード
   すみませんでした

書ける範囲で一生懸命書いたのですが、これ以上の質問やもっとといわれると
かけませんので、もう終わりにします

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

【10680】Re:フラグ更新について(更新クエリ?)
質問  MAI  - 08/11/6(木) 22:33 -

引用なし
パスワード
   ▼トキドキ徹 さん:

こんばんは
ありがとうございます。
トキドキ徹 さんのアドバイス通りで解消いたしましたが
ただ、テストデータの10件ではOKです。
データ数を7,500件で行なうと
実行時エラー ’3035’
メモリ不足です。

デバック(D)をクリックすると
myDB.Execute mySQL, dbFailOnError 部はイエローになっています。
何故でしょうか?
お教え下さい。
お願い致します。

>    myRS.MoveNext
>  Loop
>
>  Set myRS = Nothing
>
>   'T_受注更新
>   For myLooP = LBound(myFilSTR) To UBound(myFilSTR)
MAI
・ツリー全体表示

【10679】Re:抽出クエリで選択したものを人が判断...
お礼  nawa  - 08/11/6(木) 21:11 -

引用なし
パスワード
   結局結果は得られませんでした。
やはり、困難な内容なのかもしれません。
お世話になりました。
・ツリー全体表示

【10678】Re:エクセルに値渡ししたい
発言  neptune  - 08/11/6(木) 17:22 -

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

Excelの方はコピペ、Accessの方もパスを変更しただけ。
コードは以下。
Public Sub run_excel2()
    'レイトバインド時(参照設定無し)
    Dim xls As Object
    Dim wkb As Object
    Dim wks As Object
    Dim rng As Object
    Dim strSQLstring As String
  
    Dim pstr As String
  
    pstr = "ac_str"
  
    Set xls = CreateObject("Excel.Application")
  
    xls.Visible = True   '###
     
    Set wkb _
      = xls.Workbooks.Open( _
          Filename:="E:\hoge" & "\test_01.xls")
     
    xls.Run "一括処理1"  '←OK 引数なし 動きます
    xls.Run "一括処理2"   '←NG 実行時エラー '449':引数は省略できません。
                'OKでした。
    xls.Run "一括処理2", pstr   '←OK 引数有りなら動きます
  
    wkb.Close SaveChanges:=True
    xls.Quit
    Set wkb = Nothing
    Set xls = Nothing
End Sub

で、確認しましたが、問題なく動作しました。
VB6でも上記で検証しましたが、やはり、問題は発生しませんでした。
なので、何故、エラーが出るかは?です。

念の為、Bookの破損を切り分ける為、
新しいBookを作成して、検証をやり直してみてはどうですか?
この辺りしか思い付きません。

なお、当方、Office2K、WindowsXP SP3の環境です。
・ツリー全体表示

【10677】Re:書き込み処理
発言  picture  - 08/11/6(木) 16:13 -

引用なし
パスワード
   ▼お手上げ さん:
質問が漠然としすぎです。
それで「コードを教えて」と具体的回答を求めるのは
少し無理があります。

お困りであるとは思いますが、読む側は、お手上げさんの
傍らに居て、今、どのような状態で、どのようにしたいのかを
確認できません。

そのあたりをもう少し具体的に説明すると良いでしょう。


> 伝票を検索した後、新規で作成したい
検索はどのように行うのでしょう?
検索結果はどのように処理しているのでしょう?
新規登録と検索との関係はなんでしょう?

> 新規登録 というボタンがあります
> それをクリックすると、新規登録の画面に書き込みはじめたいです
ボタンは検索画面?検索結果?登録専用?
新規登録の画面は別フォーム?
テーブルとの連結は?

などなど。。。。。
・ツリー全体表示

【10676】Re:エクセルに値渡ししたい
質問  ON  - 08/11/6(木) 15:55 -

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

なぜだか、うまく動かせずに
ググッたり、試したりしているうちに、大変遅くなってしまいました


結局、下記でなんとか動きましたが

Sub 一括処理2(Optional ByVal pstr As String)
のとき
'xls.Run "一括処理2"   '←NG 引数は省略できません。
となってしまいます
オプショナルだから引数は無しでもいいような気がするのですが・・・
アドバイス頂けると助かります

よろしくお願い致します


アクセス標準モジュール

  Public Sub run_excel2() 
    
    
    '参照設定時
    'Dim xls As Excel.Application
    'Dim wkb As Excel.Workbook
    'Dim wks As Excel.Worksheet
    'Dim rng As Excel.Range
    'Dim strSQLstring As String
    
    'レイトバインド時(参照設定無し)
    Dim xls As Object
    Dim wkb As Object
    Dim wks As Object
    Dim rng As Object
    Dim strSQLstring As String
    
    Dim pstr As String
    
    pstr = "ac_str"
    
    Set xls = CreateObject("Excel.Application")
    
    xls.Visible = True   '###
         
    Set wkb _
      = xls.Workbooks.Open( _
          Filename:=CurrentProject.Path & "\test_01.xls")
         
    xls.Run "一括処理1"  '←OK 引数なし 動きます
    'xls.Run "一括処理2"   '←NG 実行時エラー '449':引数は省略できません。
    xls.Run "一括処理2", pstr   '←OK 引数有りなら動きます
    
  '   wkb.Close SaveChanges:=True
  '   xls.Quit
  '   Set wks = Nothing
  '   Set wkb = Nothing
  '   Set xls = Nothing
        
  
  End Sub


エクセル標準モジュール

Public Sub 一括処理1()

  Dim exl_msg As String
  
  exl_msg = "exl固定"
  
  MsgBox exl_msg


End Sub


Sub 一括処理2(Optional ByVal pstr As String)
'Sub 一括処理2(pstr As String)

    
  MsgBox pstr
  

End Sub
・ツリー全体表示

【10675】書き込み処理
質問  お手上げ  - 08/11/6(木) 15:13 -

引用なし
パスワード
   はじめまして
どうしてもわからないので教えてください

伝票を検索した後、新規で作成したい

新規登録 というボタンがあります
それをクリックすると、新規登録の画面に書き込みはじめたいです


Private Sub 新規_Click()
End sub

この中に追加で書き込むことを教えてください
・ツリー全体表示

【10674】Re:フラグ更新について(更新クエリ?)
発言  トキドキ徹  - 08/11/6(木) 9:42 -

引用なし
パスワード
   ▼MAI さん:
遅レスすみません("ときどき"しかこないので^^;;)

メモリ不足については、ゴメンなさい。分かりません m(_~_)m

>    myRS.MoveNext
>  Loop
>
  Set myRS = Nothing

>   'T_受注更新
>   For myLooP = LBound(myFilSTR) To UBound(myFilSTR)

としてみて解消されなければ、このコードの使用はあきらめて下さい。


> 又、後だしで申し訳ありませんが、フラグ”9”の場合は更新
> しないとしたいのですが。
こちらについては、少し考えてみましょう。

更新の条件をWhere 〜 で設定しています。
現在のこの部分の意味が理解できれば、
> フラグ”9”の場合は更新しない
も分かるかと思います。

注文NOが(〜)のとき、フラグを2(または3)に更新しなさい、
というクエリを実行しています。

【10662】のneptuneさんのSQLも同様かと思います。
既にお気付きかもしれませんが、
> WHERE フラグ IN
> (SELECT T_受注.フラグ

WHERE 注文NO IN
(SELECT T_受注.注文NO
と変更すると正しく更新されるかと思います。
(99.99・・は別として)
・ツリー全体表示

【10673】Re:フラグ更新について(更新クエリ?)
質問  MAI  - 08/11/5(水) 21:04 -

引用なし
パスワード
   ▼トキドキ徹 さん:
宜しくお願い致します。
VBA(Access)初心者ですが、
トキドキ徹 さんのアドバイス頂きました
VBAを何とか、使用したいのですが
宜しくお願い致します。

”myDB.Execute mySQL, dbFailOnError”でエラーとなってしまいました。

実行時エラー 3035
メモリ不足です。
 本当に宜しくお願いします。 
又、後だしで申し訳ありませんが、フラグ”9”の場合は更新
しないとしたいのですが。
宜しく、お願い致します。


私はAcc2003を使用しています。
>VBAコードの一例です。
>'=======================================
>Private Sub sub_Sample()
>'要参照設定 Microsoft DAO X.X Object Library
>  Dim myDB As DAO.Database
>  Dim myRS As DAO.Recordset
>  Dim myFilSTR(2 To 3) As String  '** 出荷率ごとの更新値を引数に **
>  Dim myLooP As Long
>  Dim mySQL As String
>  
>  Set myDB = CurrentDb
>  Set myRS = myDB.OpenRecordset("Q_出荷状況", dbOpenSnapshot)
>  
>  '出荷率ごとの注文NOを取得
>  Do Until myRS.EOF
>    If myRS!出荷率 > 1 And myRS!出荷率 < 100 Then
>      myFilSTR(2) = myFilSTR(2) & ", '" & myRS!注文NO & "'"
>    ElseIf myRS!出荷率 >= 100 Then
>      myFilSTR(3) = myFilSTR(3) & ", '" & myRS!注文NO & "'"
>    End If
>    myRS.MoveNext
>  Loop
>  
>  'T_受注更新
>  For myLooP = LBound(myFilSTR) To UBound(myFilSTR)
>    If myFilSTR(myLooP) <> "" Then
>      myFilSTR(myLooP) = "IN (" & Mid$(myFilSTR(myLooP), 3) & ")"
>      mySQL = "UPDATE T_受注 SET フラグ = " & myLooP & _
>          " WHERE 注文NO " & myFilSTR(myLooP)
>      myDB.Execute mySQL, dbFailOnError
>    End If
>  Next myLooP
>  
>  Set myRS = Nothing
>  Set myDB = Nothing
>End Sub
>'=======================================
・ツリー全体表示

【10672】Re:ハイパーリンクの編集→ファイルを開...
お礼  mari  - 08/11/4(火) 23:08 -

引用なし
パスワード
   YU-TANGさんありがとうございます。
おっしゃるように優先度を見計らって、いって頂いたことを、
やってみます。またよろしくお願いします。
・ツリー全体表示

【10671】Re:クエリデータをaddnewでテーブルに入...
お礼  ver E-MAIL  - 08/11/4(火) 9:40 -

引用なし
パスワード
   rs2.AddNew
        
For ix = 0 To rs1.Fields.Count - 1
rs2(ix) = rs1(ix)
Next ix
        
rs2.Update

としたところ上手く所定の動作が出来るようになりました

ありがとうございます!
・ツリー全体表示

【10670】Re:フラグ更新について(更新クエリ?)
発言  MAI  - 08/11/3(月) 23:44 -

引用なし
パスワード
   ▼neptune さん:
すいません!!
 そうですね
 初心者で、本当にすいません
取り急ぎ、お詫びを
>・・・ちなみにExcelの板では私の興味をそそるものは別として、
とは
・ツリー全体表示

【10669】Re:フラグ更新について(更新クエリ?)
発言  neptune  - 08/11/3(月) 21:59 -

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

>>えっ100以上も2になりましたか???
>なっちゃうんですよ
で、データ型をあわせる話はどうなりましたか?

データ型があっているのに、なるのなら、実際のtable,query等もチェック、
検証をしなければ私にはわかりません。かといってそれで判るかどうかも
わかりません。

>出荷率が100以上の場合はフラグ3に変更します。フラグ 9の場合で出荷率100以上の場合は9から3へ変更します。
>(出荷率 100以下の場合は更新しない、 9から2へは更新しない)
> と言う意味です。
判りました。

>neptune さんなら
>出荷率 100以下の場合は更新部分はどの様に作成しますか?
>具体的にお教え下さい。(アドバイスをお願い致します)
MAI さんはどうやりますか?
私の現状の理解ではフラグを2に変更するSQLを少し改造するだけですが。
抽出条件を100以上にするだけでは?

具体的な案を書くのはできますが、自分でやらなければ後で困るのは自分ですよ。
先ず、MAI さんがどのようにして、出来たか、又は躓いているかを示すべきでは?


キツイ事書きますが、私は相談には乗ったりサンプルを書いたりはしますが、
質問者さんからの具体的なという「お願い」には、最初から書くという事
はしていません。
・・・ちなみにExcelの板では私の興味をそそるものは別として、
原則そのような事はお断りしてます。(受け入れると際限がないんです。)
・ツリー全体表示

【10668】Re:フラグ更新について(更新クエリ?)
質問  MAI  - 08/11/3(月) 21:33 -

引用なし
パスワード
   ▼neptune さん:
こんばんは

>>7,000件前後で、10秒位で、変更が終了しました。
>>※でも全て(フラグ9以外)、フラグ2へ変更されてしまいました。
>>(出荷100以上も2となってしまいました。
>えっ100以上も2になりましたか???
なっちゃうんですよ

>>>※出荷率が100以上の場合はフラグ3に変更でフラグ9の場合は更新するに。
>ちょっと、これは後半部分の意味わかりませんので、
>コメントのしようがないです。
わかり難くてすいません。
出荷率が100以上の場合はフラグ3に変更します。フラグ 9の場合で出荷率100以上の場合は9から3へ変更します。
(出荷率 100以下の場合は更新しない、 9から2へは更新しない)
 と言う意味です。

neptune さんなら
出荷率 100以下の場合は更新部分はどの様に作成しますか?
具体的にお教え下さい。(アドバイスをお願い致します)
・ツリー全体表示

【10667】Re:フラグ更新について(更新クエリ?)
発言  neptune  - 08/11/3(月) 18:53 -

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

>7,000件前後で、10秒位で、変更が終了しました。
>※でも全て(フラグ9以外)、フラグ2へ変更されてしまいました。
>(出荷100以上も2となってしまいました。
えっ100以上も2になりましたか???

>WHERE T_受注.フラグ<>9 AND Q_出荷状況.出荷率 Between 1 And 99);
としているんですが、何故なんでしょう。?
>再度、確認(質問)ですが
>1.出荷率 Between 1 And 99とは、出荷率が99.99、、でも問題無く、フラグは2になるのでしょうか?
いいえ、本当はならないと思います。
参考:Transact-SQLのMSDNですが、ここは同じだったと思います。
ht tp://msdn.microsoft.com/ja-jp/library/ms187922.aspx

提案ですが、もし、出荷率が、小数点以下を必要としていないなら、Q_出荷状況
の出荷率の算出方法ですが、受注数は長整数型になっているはずですから、
算出部分も
CLng([T_出荷]![出荷数計]/[T_出荷]![注文数量]*100) AS 出荷率
として、データ型をあわせてみてはどうですか?

もう一手としては、私なら、検索条件をbetweenから、不等号に切り替えるとかも
やってみます。

>
>2.又、出荷率が100以上の場合はフラグ3は別に、クエリを作るのが良いのでしょうか?
私の、スキルではその方法しか思い付きません。YU-TANGさんが途中で
サンプル書いてくれましたが、mdbかJetSQLの仕様らしく、普通の
UPDATE INNER JOINでは出来ないようです。

私なら変更する値、検索条件部分をパラメータにして、パラメータクエリを
作成し、VBAでそのパラメータクエリをキックするという方法をとると思います。

>※出荷率が100以上の場合はフラグ3に変更でフラグ9の場合は更新するに。
ちょっと、これは後半部分の意味わかりませんので、
コメントのしようがないです。
・ツリー全体表示

【10666】Re:フラグ更新について(更新クエリ?)
質問  MAI  - 08/11/3(月) 15:54 -

引用なし
パスワード
   ▼neptune さん:
こんにちは
本当にありがとうございます。
フラグを数値型に変更後、実行してみました。
7,000件前後で、10秒位で、変更が終了しました。
※でも全て(フラグ9以外)、フラグ2へ変更されてしまいました。
(出荷100以上も2となってしまいました。
再度、確認(質問)ですが
1.出荷率 Between 1 And 99とは、出荷率が99.99、、でも問題無く、フラグは2になるのでしょうか?

2.又、出荷率が100以上の場合はフラグ3は別に、クエリを作るのが良いのでしょうか?
※出荷率が100以上の場合はフラグ3に変更でフラグ9の場合は更新するに。
再度宜しくお願い致します。
作ってみましたがダメでした

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

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