Excel VBA質問箱 IV

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

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


56901 / 76732 ←次へ | 前へ→

【24573】Re:アクセスデータの集計
発言  kazu  - 05/4/26(火) 21:02 -

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


>Cells(n, 1) = rst.Fields("品名").Value 
>の=以降のところを = hinban 
>などとすると、こんどは値は正しいのですが、「null値の使い方が不正です」と出ます。
↑はString 型の変数にNullを格納しようとした為起こったものです。
型定義をしなければこのエラーは出ないと思いますよ。

SQL変更しないでマクロで処理してみました。


Type TANTOUCHK
  Tantou1 As Variant
  Hinmoku() As Variant
End Type

Type Zokusei
  Tenmei As Variant
  Tantou() As TANTOUCHK
End Type


Sub TEST3()

  Dim cnn As ADODB.Connection
  Dim rst As ADODB.Recordset

  Dim Tenpo() As Zokusei
  ReDim Tenpo(0)

  Set cnn = New ADODB.Connection
  cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Documents and Settings\999393\My Documents\週報.mdb"
  cnn.Open
  Set rst = New Recordset

  rst.Open "累積", cnn
  rst.MoveFirst

  Do Until rst.EOF
    Chk = False
    BufCnt = UBound(Tenpo)
    For I = 0 To BufCnt
      If Tenpo(I).Tenmei = rst.Fields("店名") Then
        IntBuf = I
         Chk = True
      End If
    Next
  
    If BufCnt = 0 And Tenpo(0).Tenmei = "" Then
      BufCnt = 0
    Else
      BufCnt = BufCnt + 1
    End If
  
  
    If Not Chk Then
      ReDim Preserve Tenpo(BufCnt)
      Tenpo(BufCnt).Tenmei = rst.Fields("店名")
      ReDim Tenpo(BufCnt).Tantou(0)
      IntBuf = BufCnt
    End If
  
    Chk = False
    BufCnt = UBound(Tenpo(IntBuf).Tantou)
    For I = 0 To BufCnt
      If Tenpo(IntBuf).Tantou(I).Tantou1 = rst.Fields("契約者名") Then
        IntBuf2 = I
        Chk = True
      End If
    Next

    If BufCnt = 0 And Tenpo(IntBuf).Tantou(0).Tantou1 = "" Then
      BufCnt = 0
    Else
      BufCnt = BufCnt + 1
    End If

    If Not Chk Then
      ReDim Preserve Tenpo(IntBuf).Tantou(BufCnt)
      Tenpo(IntBuf).Tantou(BufCnt).Tantou1 = rst.Fields("契約者名")
      ReDim Tenpo(IntBuf).Tantou(BufCnt).Hinmoku(0)
      IntBuf2 = BufCnt
    End If
  
    Bg = UBound(Tenpo(IntBuf).Tantou(IntBuf2).Hinmoku)
    If Bg = 0 And Tenpo(IntBuf).Tantou(IntBuf2).Hinmoku(0) = "" Then
      Bg = 0
    Else
      Bg = Bg + 1
    End If

    ReDim Preserve Tenpo(IntBuf).Tantou(IntBuf2).Hinmoku(Bg)
  
    Tenpo(IntBuf).Tantou(IntBuf2).Hinmoku(Bg) = rst.Fields("品名")
  
    rst.MoveNext
  Loop

RowInd = 1
  For I = 0 To UBound(Tenpo)
    CtALL = 0
    Cells(RowInd, 1) = Tenpo(I).Tenmei
    For J = 0 To UBound(Tenpo(I).Tantou)
      Cells(RowInd, 2) = Tenpo(I).Tantou(J).Tantou1
      Ct = UBound(Tenpo(I).Tantou(J).Hinmoku)
      CtALL = CtALL + Ct + 1
      For K = 0 To Ct
        Cells(RowInd, 3 + K) = Tenpo(I).Tantou(J).Hinmoku(K)
      Next
      RowInd = RowInd + 1
      Cells(RowInd, 2) = "<件数>"
      Cells(RowInd, 3) = Ct + 1
      RowInd = RowInd + 1
    Next
    Cells(RowInd, 2) = "計"
    Cells(RowInd, 3) = CtALL
    RowInd = RowInd + 1
  Next
End Sub
0 hits

【24563】アクセスデータの集計 さつき 05/4/26(火) 15:29 質問
【24570】Re:アクセスデータの集計 小僧 05/4/26(火) 19:42 回答
【24582】Re:アクセスデータの集計 さつき 05/4/27(水) 13:55 お礼
【24675】Re:アクセスデータの集計 さつき 05/5/2(月) 15:29 質問
【24676】Re:アクセスデータの集計 m2m10 05/5/2(月) 16:42 発言
【24721】Re:アクセスデータの集計 さつき 05/5/6(金) 10:51 お礼
【24771】Re:アクセスデータの集計 さつき 05/5/9(月) 18:59 質問
【24776】Re:アクセスデータの集計 小僧 05/5/10(火) 9:31 回答
【24780】Re:アクセスデータの集計 さつき 05/5/10(火) 11:19 質問
【24787】Re:アクセスデータの集計 小僧 05/5/10(火) 16:15 回答
【24868】Re:アクセスデータの集計 さつき 05/5/12(木) 9:43 お礼
【24879】Re:アクセスデータの集計 小僧 05/5/12(木) 13:26 回答
【24897】Re:アクセスデータの集計 さつき 05/5/12(木) 20:14 お礼
【24903】Re:アクセスデータの集計 小僧 05/5/13(金) 10:19 回答
【24974】Re:アクセスデータの集計 さつき 05/5/16(月) 15:06 お礼
【24573】Re:アクセスデータの集計 kazu 05/4/26(火) 21:02 発言
【24583】Re:アクセスデータの集計 さつき 05/4/27(水) 13:56 お礼
【24576】Re:アクセスデータの集計 ichinose 05/4/26(火) 23:43 発言
【24584】Re:アクセスデータの集計 さつき 05/4/27(水) 13:58 お礼

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