SNA Serverとは?

このQ&Aのポイント
  • SNA Server(Systems Network Architecture Server)とは、マイクロソフトが提供するアプリケーションサーバーのことです。
  • SNA Serverを使用することで、異なるプラットフォーム間での通信やデータの共有が容易に行えます。
  • SNA Serverは、ビジネスアプリケーションやデータベースシステムなどの連携をサポートする役割を果たします。
回答を見る
  • ベストアンサー

SNA Serverって?

アクセス2010でADOで並べ替えができなくなったのでググったら http://support.microsoft.com/kb/253102/ja が見つかったので読んだら SNA Server 4.0 日本語版 Service Pack 4 を入れれば解決とのことですが、 SNA Server ってなんでしょう? それにどこからダウンロードすればいいのかわからないのでまたググったら http://support.microsoft.com/kb/215838/ja がヒットしたのですが、読んでもどこからダウンロードすればいいのかわかりません。教えてください。 よろしくお願いします。 下記が前回の質問です (http://oshiete.coneco.net/qa7948709.html) --------------------------------------------------------- エクセルからアクセスのクエリをADOで並べ替えたいのですが 並べ替えをしようとすると、「実行時エラー -2147217824並べ替えを適用できません.」 になります。 コードは cn.Open "Provider = Microsoft.ACE.OLEDB.12.0;" & "Data Source= " & ActiveWorkbook.Path & ".accdb" rs.CursorLocation = adUseClient rs.Open "Qindex", cn, adOpenKeyset, adLockOptimistic rs.Sort = "サンプル名 ASC" です。 rs.Sort の行をなくせば正常に動きます。 その後のコードで、MyFileName = rs("サンプル名")ができるから、サンプル名というフィールドは問題なく存在していることが確認できます。 何が原因でしょうか? ちなみにアクセスのクエリのほうで昇順に並び替えをしているのに、 rs.CursorLocation = adUseClientせずにレコードを取得しても、クエリの順番で取得できませんでした。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

もしかして、ソートしようとしているフィールドのデータ型がメモ型ってことはありませんか? 提示されたコードでメモ型フィールドをソートしようとすると、 -2147217824 のエラーになりました。 ADOの2.8 と 6.1 で結果は同じです。 テキスト型ならソートできました。 なので、 SQL文の Order By 句を動的に変えるか Left(メモ型フィールド,100) As TmpField みたいなフィールドを作成して このフィールドに対してSort とか。 >ちなみにアクセスのクエリのほうで昇順に並び替えをしているのに、 >rs.CursorLocation = adUseClientせずにレコードを取得しても、クエリの順番で取得できませんでした。 はクエリのデザインビュー(SQL)で昇順指定されているのですよね? もしかして、もしかしたら クエリのデータシートビューで並べ替えを行っていて 並べ替えの解除を忘れたままとか・・・ クエリのデータシートビューで並べ替えた時は、Order By 句よりも優先されますが レコードセットで開いた場合は並べ替えは無視され、Order BY 句が適用されます。 確認済みならゴメン。 SNA Serverについては、utakataXEX さんに激しく同意 Access2010が発表される以前の資料ですし。 >文書番号: 253102 - 最終更新日: 2004年5月10日 - リビジョン: 1.0

KCLSZZDBZHKS
質問者

お礼

ご回答ありがとうございます。

その他の回答 (1)

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

直接の解決法でなく、恐縮ですが、こちらをごらんください。 対象製品 http://support.microsoft.com/kb/253102/ja#appliesto ご質問のSNA Serverとはメインフレーム(大型コンピューター)との接続で使われるソフトです。 Excel、Access などPCで使用する際のADOの問題が解決できる訳ではありません。 当該のサポートページは、あくまでも、CICS、IMSと云ったメインフレームのDBやトランザクションモニターに対してADOで接続する際の問題に対応するものです。 ですので、焦ってインストールしないようにしてください。

KCLSZZDBZHKS
質問者

お礼

ご回答ありがとうございます。

関連するQ&A

  • アクセスのADO

    アクセスのADOで ウォッチ式にrsを登録してみていると rs.CursorLocation = adUseClient rs.Open "テーブル1", cn, adOpenStatic, adLockOptimistic を通過後は、 RecordCountには、20と数字が入るのですが、 rs.CursorLocation = adUseClient rs.Open "テーブル2", cn, adOpenStatic, adLockOptimistic にすると RecordCount : <データ プロバイダーまたはほかのサービスが E_FAIL 状態を返しました。> となってしまいます。 テーブルの中身が原因だと思うのですが どういう条件なら、 <データ プロバイダーまたはほかのサービスが E_FAIL 状態を返しました。> になるのでしょうか? rs.CursorLocation = adUseClient を使う理由は、 rs.Sort = "日付 DESC" とソートする為です。 参照設定はMicrosoft Activex Data Objects 2.8 Library にしています。 Access2010・32bitです。

  • アクセスでADO 並べ替えが適用できない

    アクセスでADOを使っているのですが、 Sub test() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Set cn = CurrentProject.Connection rs.CursorLocation = adUseClient rs.Open "SELECT * FROM Q1", cn, adOpenStatic, adLockPessimistic rs.Sort = "受付日 DESC" For i = 1 To rs.RecordCount ・ ・ ・ このようなコードを作っていますが、 rs.Sortの部分で、「並べ替えを適用できません」になります。 レコード数は、15000件くらいです。 なぜ並べ替えができないのでしょうか? しょうがないからクエリで最初から並べ替えしておきますが、原因を教えてください。

  • E_FAIL状態とはどういう状態でしょうか?

    アクセスADOなのですが Set cn = CurrentProject.Connection rs.CursorLocation = adUseClient rs.Open "T_テーブル", cn, adOpenKeyset, adLockOptimistic For i = 1 To rs.RecordCount を実行しようとすると 実行時エラー -2147467259(80004005) 「データプロバイダまたはほかのサービスがE_FAIL状態を返しました」 と言うエラーが発生します。 https://support.microsoft.com/ja-jp/kb/168336 を読んでみたのですが、よく意味がわかりません。 それに、同じコードで今まで動いてたのですが T_テーブルにデータを追加したら、 上記のエラーが発生するようになりました。

  • 数値のMAXの値を取得したい ADO VBA

    アクセスです。 ADOで該当のフィールドの数値のMAXの値を取得するにはどうすればいいですか? テーブルの番号フィールドには、 1 2 3 4 5 と入っているのですが、 この場合、一番大きい値は5なので MAX関数のようなもので5を返したいのですが ADOにそのようなプロパティはありますか? オブジェクトブラウザーでRecordsetを見てみましたが 見つけられませんでした。 Sub Sample() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Set cn = CurrentProject.Connection rs.CursorLocation = adUseClient rs.Open "SELECT * FROM T_test", cn, adOpenStatic, adLockPessimistic rs.Sort = "番号 DESC" Debug.Print rs("番号").Value rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub これで同じような動きは出来ますが、 もっとシンプルにできませんか?

  • アクセス ADO 並べ替え

    Public rsMain As New ADODB.Recordset Public cn As New ADODB.Connection Private Sub cmd_実行_Click() Set cn = CurrentProject.Connection rsMain.CursorLocation = adUseClient rsMain.Open "Qクエリ", cn, adOpenStatic, adLockPessimistic rsMain.Filter = "実行フラグ =-1" rsMain.Sort = "順番 ASC" としたときに 実行時エラー -2147217824 並べ替えを適用できません。 となります。 実際QクエリはデザインビューでIFF関数で作った列を 並べ替え:昇順にしているのですが ADOで取得した際はその並べ替え通りにはならないので rsMain.Sortで並べ替えをしようと思ったのですがエラーになります。 どういう原因でこの実行時エラーが発生するのでしょうか?

  • アクセス ADO

    Tテーブルと言うファイルは存在するのに、 Set cn = CurrentProject.Connection rs.CursorLocation = adUseClient rs.Open "Tテーブル", cn, adOpenStatic, adLockPessimistic rs.Sort = "順番 ASC" を実行すると 「実行時エラー-2147217900(80040e14) SQLステートメントが正しくありません Delete、Insert、Procedure、SelectまたはUpdateを使用して下さい。」 が発生します。 rs.CursorLocation = adUseClient は問題なく通過する為、 Tテーブルと言うオブジェクトが存在しない為のエラーなのかなと思いましたが Tテーブルは存在します。 http://www.accessclub.jp/bbs2/0128/beginter38279.html を見たのですが 私の場合はクエリではなくテーブルなので パラメーターは関係ないと思っています。

  • ADOでNULLのレコードを抽出したい

    ADOでNULLのレコードを抽出したいのですがうまくできません。 Q全てクエリには、登録日フィールドや登録数フィールドがあります。 登録数フィールドは数値です。 その登録数フィールドがnullのレコードを抽出したいです。 RS.CursorLocation = adUseClient RS.Open "Q全て", cn, adOpenKeyset, adLockOptimistic RS.Sort = "登録日 DESC" RS.Filter = "[登録数] = NULL" RS.Filter = "IsNull(登録数) = True" RS.Filter = "登録数 Is Null" ↑これどれをやってもエラーになります。 対策をお願いします。

  • VB6とSQL SERVER 2005のADO接続方法

    VB6とSQL SERVER 2005(Developer Edition)のADO接続方法がわかりません。 今までSQLSERVER2000で開発していたのですが、DBをSQLSERVER2005に 変更したところ接続できませんでした。 以下はSQLSERVER2000時のソースなのですが、 2005の場合ConnectionStringはどうやればいいのでしょうか? --------------------------------------- Dim rs As ADODB.Recordset Dim cn As ADODB.Connection Set rs = New ADODB.Recordset Set cn = New ADODB.Connection cn.ConnectionString = "Provider=SQLOLEDB.1;" & _ "User ID=" & strUsr & ";" & _ "Data Source=" & strSvr & ";" & _ "Password=" & strPass cn.CursorLocation = adUseClient cn.Open --------------------------------------- 初歩的な質問で申し訳ありませんがどなたかお助けください。

  • アクセス ADO レコードの件数がおかしい

    アクセスADOでクエリの行数を取得したいのですが クエリが200行でも100行でも必ず12が返ります。 クエリ1は、一度12行の時にadoで数を取得し、その時は、正しく12が返ったのですが、 行数が変わっても12が返ります。 コードは、 Sub Sample() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Set cn = CurrentProject.Connection rs.Open "SELECT * FROM クエリ1", cn, adOpenStatic, adLockPessimistic Debug.Print rs.RecordCount rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub です。 Debug.Print DCount("*", "クエリ1") だと、正しいレコード数が取得されるのですが、ADOだとおかしいです。 クエリ1のSQL文は、 SELECT Q_作業用.* FROM Q_作業用; のように、別のクエリを持ってきています。 何が原因なのでしょうか? よろしくお願いします。

  • カッコ付のオブジェクト名を指定できないという事でし

    アクセスでadoを使ってレコードセットを開く時に rs.Open "Q_(クエリ名)", cn, adOpenStatic, adLockPessimistic とするとエラーになります。 しかし、 Q_(クエリ名)というクエリは作成できたし、問題なく開けます。 adoの時は、カッコ付のオブジェクト名を指定できないという事でしょうか?

専門家に質問してみよう