• ベストアンサー

access listviewで 型が一致しません

次のコードをAccess2002とExcel2002のフォームに 貼り付け、実行したところExcelでは問題ありません がAccessでは型が一致しませんといってエラーにな ります。 これは何が悪いのでしょうか? よろしくお願いします。 Dim oLV As New ListView Set oLV = ListView1

noname#27115
noname#27115

質問者が選んだベストアンサー

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

> 何が悪いのでしょうか? についてはわかりません。 Excelのフォームは、VBのユーザーフォーム相当で、 Accessは別物だから、というところでしょうか。 回避策としては Dim oLV As Object と宣言することで。

noname#27115
質問者

お礼

なるほど、ありがとうござました。

関連するQ&A

  • ACCESS2000VBAでエラー「型が一致しません」

    ACCESS2000で、フォーム上にボタンを作り、そのボタンをクリック時に 以下のイベント プロシージャを実行させています。 Dim dbs As Database Dim rst As Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset("採番_相談者") Dim Number rst.MoveFirst Number = rst!相談者番号 Number = Number + 1 Me.相談者NO = Number '相談者NOはフォーム上のテキストボックスです。 で上記 Set rst = dbs.OpenRecordset("採番_相談者") の所で、「実行時エラー 13 型が一致しません」とエラーになります。 テーブル:採番_相談者は、オートナンバー型のIDフィールドと相談者番号という7桁のテキスト型で ”1000001”が入っています。(ちなみに、数値型に変えても同じエラーでした。) 詳しい方教えてください。お願いします。

  • Access2010 「型が一致しません。」エラー

    お世話になっております。 テキストファイルからデータを取り込んで、テーブルにあるデータと同じデータのみを表示させるプログラムがあります。 コードが「001」のように整数の場合は問題ないのですが、「A001」のように英数のデータの場合は、このエラーが出てしまいます。 「実行時エラー13 型が一致しません。」 デバッグをクリックすると、下記の部分が黄色に反転します。 「If DFirst("コード", "テーブル", "コード = '" & avarFldData(0) & "'") Then」 テキストファイルのデータがテーブルにない場合はエラーが出ませんので、一致したデータがある場合のみエラーが出ます。 VBAはあまり詳しくありませんので、エラーが出なくなる方法を教えていただければ助かります。 よろしくお願いいたします。 Private Sub Form_Load() Dim dbs As Database Dim rst As Recordset Dim strImportDir As String Dim strFile As String Dim lngFileNum As Long Dim strData As String Dim avarFldData As Variant Dim iintLoop As Integer DoCmd.Hourglass True strImportDir = Application.CurrentProject.Path & "\" strFile = strImportDir & "File.TXT" Set dbs = CurrentDb GoSub ReadFile Me.Requery DoCmd.Hourglass False Exit Sub ReadFile: Set rst = dbs.OpenRecordset("履歴", dbOpenDynaset, dbAppendOnly) lngFileNum = FreeFile() Open strFile For Input As #lngFileNum Do Until EOF(lngFileNum) Line Input #lngFileNum, strData avarFldData = Split(strData, ",", , vbTextCompare) For iintLoop = 0 To UBound(avarFldData) avarFldData(iintLoop) = Trim$(avarFldData(iintLoop)) Next iintLoop If DFirst("コード", "テーブル", "コード = '" & avarFldData(0) & "'") Then With rst .AddNew !コード = avarFldData(0) .Update End With End If ' End If Loop Close #lngFileNum rst.Close Kill strFile Return End Sub

  • 配列の参照渡しで型が一致しません。

    エクセル2003です。 いつもお世話になります。 以下のコードを実行すると「配列の型が一致しません。」というエラーが出ます。 typeNameで確認しても配列の型はvariant()で正しいと思うのですが。。。 皆様のお知恵を拝借させていただけないでしょうか。 -------------------------------------- Sub main() Dim e As Variant e = fuN() Call pRo(e)  '←ここでエラーになる。 End Sub Function fuN() As Variant Dim a(0) As Variant a(0) = "zero" fuN = a End Function Sub pRo(ByRef c() As Variant) '処理っす End Sub --------------------------------------

  • 型が一致しない でも、プログラムは止まらない

    エクセルVBAにて 型が一致しない エラーのポップが出ます。 プログラムは中断していますが、OKボタンで プログラムは止まらず、その後の処理を実行します。 コードを表示した状態で デバッグを行いたいのですが、プログラムが止まらないので、箇所が特定できません。 自作フォーム、モジュール、タイマー、何でもありの状態ですが、そのまま、継続される・・・ってことが 場所の特定できる方法って 考えられるでしょうか 

  • Excel VBA で「型が一致しませんエラー

    Excel VBA で「型が一致しません」というエラーが発生します。 -------------------------------------------------------------------------------- Dim katacode as String katacode = "(1001,1002,1005,1010,1015,1020,1030,1035,1036,1040,…(省略)…,1150)" With ActiveSheet.QueryTables.Add(Connection:= _ pubfncgetConnectString,Destination:=Range("A1")) .CommandText = Array(_ "SELECT ~ FROM ~ WHERE コード IN katacode -------------------------------------------------------------------------------- 「katacode」の値が、文字列の長さが155までは上手く動くのですが  それ以上に追加すると「型が一致しません」というエラーが発生します。   原因がわかりましたら教えていただけないでしょうか。よろしくお願い致します。

  • VB2010 LISTVIEW 計算

    VB2010でLISTVIEWを使っています。 LISTVIEWの数字とLISTVIEW外のLABEL4の数字と合計してsuzuに格納したいのです。 Dim suzu As Long suzu = clng(Me.ListView1.Items(2).SubItems(3).Text) - clng(Me.ListView1.Items(3).SubItems(3).Text) + CLng(Me.Label4.Text) Me.ListView1.Items(4).SubItems(3).Text = CStr(Format(suzu, "#,0")) 実行させるとエラーとなります。エラーメッセージは次のようです。 「String "Label4" から型 'Long' への変換は無効です。」 トラブルシューティングのヒントを見ても対応方法が分かりません。 ご存知の方は、ご指導をお願いします。

  • エクセルVBA 実行時エラー‘13’型が一致しまん

    VBAは初級レベルです。説明が分かりづらかったらすみません。 Windows7/Excel2002を使っています。 エクセルVBAで、変数MMMと変数DDに処理する日付を入れたいのですが、 実行時エラーになってしまい、うまく変数が設定できません。 例えば、31MAR.xls というエクセルファイルがあります。 (ファイルは、デイリーベースで存在します。) このファイル名の月と日にちを変数に入れます。 DD = 日にち (例えば、31日なら“31”) MMM = アルファベット3文字 (3月なら“MAR”) そして、入力する為のワークシートを Set NYURYOKU = Workbooks(DD & MMM & ".xls").Worksheets("入力") としたのですが、 『実行時エラー‘9’インデックスが有効範囲にありません。』 となってしまいます。 このとき、 DDの値は、0: MMMの値は、00: になっています。 --------------------------- Dim HIDUKE As Date  HIDUKE = Left(ThisWorkbook.Name, 5) MMM = Mid(HIDUKE, 3, 3) DD = Left(HIDUKE, 2) Set NYURYOKU = Workbooks(DD & MMM & ".xls").Worksheets("入力") --------------------------- 変数宣言で、Dim HIDUKE As Date にすると、 HIDUKE = Left(ThisWorkbook.Name, 5) の所で『実行時エラー‘13’型が一致しません。』 となってしまい、 試しに Dim HIDUKE As String にすると、 MMM = Mid(HIDUKE, 3, 3) の所で『実行時エラー‘13’型が一致しません。』 となってしまいます。 変数宣言をしないと、 Set NYURYOKU = Workbooks(DD & MMM & ".xls").Worksheets("入力")の所で 『実行時エラー‘9’インデックスが有効範囲にありません。』 となってしまいます。 どなたか回避策を教えてください。 どうぞよろしくお願いします。

  • エクセルVBA 実行時エラー‘13’型が一致しまん

    VBAは初級レベルです。説明が分かりづらかったらすみません。 Windows7/Excel2002を使っています。 エクセルVBAで、変数MMMと変数DDに処理する日付を入れたいのですが、 実行時エラーになってしまい、うまく変数が設定できません。 例えば、31MAR.xls というエクセルファイルがあります。 (ファイルは、デイリーベースで存在します。) このファイル名の月と日にちを変数に入れます。 DD = 日にち (例えば、31日なら“31”) MMM = アルファベット3文字 (3月なら“MAR”) そして、入力する為のワークシートを Set NYURYOKU = Workbooks(DD & MMM & ".xls").Worksheets("入力") としたのですが、 『実行時エラー‘9’インデックスが有効範囲にありません。』 となってしまいます。 このとき、 DDの値は、0: MMMの値は、00: になっています。 --------------------------- Dim HIDUKE As Date  HIDUKE = Left(ThisWorkbook.Name, 5) MMM = Mid(HIDUKE, 3, 3) DD = Left(HIDUKE, 2) Set NYURYOKU = Workbooks(DD & MMM & ".xls").Worksheets("入力") --------------------------- 変数宣言で、Dim HIDUKE As Date にすると、 HIDUKE = Left(ThisWorkbook.Name, 5) の所で『実行時エラー‘13’型が一致しません。』 となってしまい、 試しに Dim HIDUKE As String にすると、 MMM = Mid(HIDUKE, 3, 3) の所で『実行時エラー‘13’型が一致しません。』 となってしまいます。 変数宣言をしないと、 Set NYURYOKU = Workbooks(DD & MMM & ".xls").Worksheets("入力")の所で 『実行時エラー‘9’インデックスが有効範囲にありません。』 となってしまいます。 どなたか回避策を教えてください。 どうぞよろしくお願いします。

  • エクセルならうまく行くのですがアクセスだとエラーに

    エクセルならうまく行くのですがアクセスだとエラーになるのですがなぜでしょうか? フォルダに入ってるフォルダ名を全て取得して一つにつなげたいのですが Sub フォルダ名を取得() 参照設定:Microsoft Scripting Runtime Dim MyFSO As Object Dim MyGetFolder As String Dim MyFolderName As String Dim MyFolder As Folder Dim i As Long MyGetFolder = "D:\My Documents" Set MyFSO = CreateObject("Scripting.FileSystemObject") With MyFSO With .GetFolder(MyGetFolder) For Each MyFolder In .SubFolders MyFolderName = MyFolderName & "," & MyFolder.Name Next End With End With MsgBox MyFolderName Set MyFSO = Nothing End Sub これを実行するとアクセスだと For Each MyFolder In .SubFolders で、実行時エラー13 型が一致しません。 になります。 エクセルもアクセスも参照設定:Microsoft Scripting Runtimeにチェックを入れています。 コードはネットで拾ってきたコードです。 オフィスの種類は2003・OSはXPです。

  • アクセスからエクセルファイルが開けない

    Cドライブに、新規 Microsoft Office Excel ワークシート.xlsxと言うファイルを作成しました。 そのうえで、アクセスから ―――――――――――――――――――――――――――――――― Sub できない1() Dim xlsWB As Object Set xlsWB = CreateObject("C:\新規 Microsoft Office Excel ワークシート.xlsx") xlsWB.Application.Run xlsWB.Name Set xlsWB = Nothing End Sub ―――――――――――――――――――――――――――――――― をすると ------------------------ 実行時エラー '1004' マクロ'新規 Microsoft Office Excel ワークシート.xlsxを実行できません。 このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。 ------------------------ となります。 なので別の方法で開こうと、 ―――――――――――――――――――――――――――――――― Sub できない2() Dim xlApp As Excel.Application Dim xlBook As Excel.Application Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open("C:\新規 Microsoft Office Excel ワークシート.xlsx") xlApp.Visible = True Set xlApp = Nothing Set xlBook = Nothing End Sub ―――――――――――――――――――――――――――――――― にしたのですが、 実行時エラー’13’型が一致しません になります。 何がダメなのでしょう? マクロ付きファイルにしないとダメですか? もしくはファイル名に空白があるからエラーになるのでしょうか? そして、なぜ二つのコードのエラー内容がちがうのでしょう? それと、なぜか上記マクロを実行していると ~$新規 Microsoft Office Excel ワークシート.xlsx と言うファイルが出来上がります。(添付画像参照) でもファイルは開いていません。 この状態で、新規 Microsoft Office Excel ワークシート.xlsx をダブルクリックして開こうとすると、一瞬だけ画面に表れてすぐ消えます。 オフィスのバージョンは2007です。 ご回答よろしくお願いします。

専門家に質問してみよう