• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UPDATE がうまくいかない)

UPDATEがうまくいかない

このQ&Aのポイント
  • SQL Server 2005とVB2005を使用してテーブルの更新を連続で実行すると、250件更新するごとに次の9レコード分の更新クエリのレスポンス時間が異常に長くなる。
  • また、250レコードごとに9件のレコードの更新クエリがエラーでるため、エラーの出たレコードを削除しても同様の問題が発生する。
  • SQL Serverではうまくいかないが、データベースをAccessのMDBファイルに変換してJETエンジンで接続すると問題なく全件更新できる。

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

  • ベストアンサー
  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.4

どうやら私が直接回答しなくても、ヒントから答えを導き出したようですね。 READ_COMMITTED_SNAPSHOTは、2005から追加された分離レベルになりますのである程度、使えるんですが、READ_COMMITTED_SNAPSHOTは、SQL Serverのtempdbに変更前後の内容を書きだしにいくので、若干レスポンスは落ちます。 そのため、READ_COMMITTED_SNAPSHOTを使う場合は、SQL Serverにあるtempdbの設定やチューニングをきちんと行うことが不可欠になりますので、そこだけご注意ください。 >出来るだけ複雑にしたくないのが正直なところです。 作ったクラスは複雑にはなりますが、他のクラスからみたら、Access、SQL Serverを意識させないので、むしろ他のクラス達から見たら、簡単になるんですけどね・・・ 工数の兼ね合いとかおありだと思いますので、最終手段としてご検討頂けるといいかもしれません。 ひとまず、分離レベルをお試し下さい。

kunkun_129
質問者

お礼

色々ありがとうございました。 大変参考になりました。 分離レベルの運用でいきたいと思います。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.3

日本語がヘンだったので、書きなおします。 >MDBのJETエンジンにどの様にして接続するのか System.Data.SqlClientを使ってAccess MDBにはアクセスできません。 なので、Access MDBの場合は、OleDb系を使うしかありません。 >出来たら 私も System.Data.SqlClient を使用したいのですが、今回のプログラムは、 >SQL Server で運用したソースをそのまま、接続文字列だけの変更だけで、 >アクセスのデータベースファイルMDBのJETエンジンにも使用したいのです。 Access MDBは、OleDb、SQL Server は、System.Data.SqlClientと接続方法を切り替えるようなクラスを作り、後は行う処理によって、接続方法の切り替えが自動・任意でできる仕組みを作ってみては如何でしょうか? その自作したクラスの外部からは、OleDbか、System.Data.SqlClientか意識させないようなクラスであると尚良いですが、それもやりたくないということなのでしょうか? また、Accessではできたことが、SQL Serverでできなかったということは、OleDBとSystem.Data.SqlClientの違いもそうですが、それ以上に、排他ロックの考え方がそもそも違います。 そういったことを、一通り考慮されていますか? その理解がないと、恐らく、この問題を相談しても解決には 導けないと思いますし、他からの回答も得られないと思います。 下記は、私からの提案になりますが、下記のやり方でやることはできないでしょうか? ・ExecuteReaderで取得したものは、すべてDataSetに落とし込みます。 ・ExecuteReaderで結果を格納したインスタンス(この例だとCDBkanjya)をDataSetに落とし込み終わった後、Close&Disposeしてあげます。 ・後は、DataSet/DataTableに対してREADする処理を記述し、ループ中でUPDATE文を実行する こうすればレスポンスの問題もロックの問題も解消でき、エラーも消えると思うのですが、如何でしょうか? 読み取るテーブルと更新のテーブルが同じテーブルで、なおかつ、読み取りのカーソル(OleDbDataReader)をCloseしないうちに、同じテーブルに更新してしまうと、少なくとも今回のコードの場合は、排他ロックの問題でうまく処理できないことがあるんじゃないかと推測します。 #分離レベルが設定されていないので、あまり細かいことは言えないのですが、ひょっとしたら、上記以外にも分離レベルを設定することで回避できるかもしれませんが、自信はありません。 一度、上記を考慮の上、再度、ロジックを見なおすことをお勧めします。

全文を見る
すると、全ての回答が全文表示されます。
  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.2

>MDBのJETエンジンにどの様にして接続するのか System.Data.SqlClientで、JETエンジンを使用するMDBへはアクセスできません。なので、Access MDBに接続したい場合は、OleDb系を使うしかありません。 >出来たら 私も System.Data.SqlClient を使用したいのですが、今回のプログラムは、 >SQL Server で運用したソースをそのまま、接続文字列だけの変更だけで、 >アクセスのデータベースファイルMDBのJETエンジンにも使用したいのです。 そしたら、Access用は、OleDbで、SQL Server は、System.Data.SqlClientと接続方法を切り替えるようなクラスを作って、そこで処理によって切り替え可能な仕組みを作ればいいだけの話なんですが、それは極力やりたくないということでしょうか? また、Accessではできたけど、SQL Serverでできなかったということは、OleDBとSystem.Data.SqlClientの違いもそうですが、それ以上に、ロックの考え方がそもそも違います。 その辺りを考慮して、ロジックを組み替えなおしてみては如何でしょうか? 例: ExecuteReaderで取得したものは、一旦、DataSetに落とし込んだ後、 すぐに、ExecuteReaderで結果を格納したCDBkanjyaをすぐ Close&Disposeしてあげます。 同時に、ExecuteReaderで使用したConnectionについても一旦Closeします。 その後、DataSetに対してREADする処理と、ループ中でUPDATE文を実行するようにすれば、レスポンスもロックの問題も解消でき、エラーも消えるんですけどね。 読み取りと更新のテーブルが同じで、なおかつ、読み取りのテーブルのカーソル(OleDbDataReader)をCloseせずに、同じテーブルに更新してしまうと、少なくとも今回のコードの場合は、排他ロックの問題でうまく処理できないことが稀にあるんじゃないかと推測します。 #分離レベルが設定されていないので、あまり細かいことは言えないのですが、ひょっとしたら、上記以外にも分離レベルを設定することで回避できるかもしれませんが、自信はありません。 一度、上記を考慮の上、再度、見なおすことをお勧めします。

kunkun_129
質問者

お礼

更なる回答ありがとうございます。 色々ヒントを教えて頂きまして感謝しています。 >Access MDBは、OleDb、SQL Server は、System.Data.SqlClientと接続方法を切り替えるような >クラスを作り、後は行う処理によって、接続方法の切り替えが自動・任意でできる仕組みを >作ってみては如何でしょうか? >その自作したクラスの外部からは、OleDbか、System.Data.SqlClientか意識させないような >クラスであると尚良いですが、それもやりたくないということなのでしょうか? 出来るだけ複雑にしたくないのが正直なところです。 プログラムは出来るだけシンプルなのが理想(自論)なので。上の手段は最終兵器として検討します。 その後、色々調べたところ、 Oracle と JETエンジン は、SELECT 文は デフォルトでは 共有モードで処理されるのに対して、 SQLServer は排他ロックで処理がされるのが原因と分かりました。 また、SQLServer は、2005バージョンから、共有モードが追加されたみたいですが、 デフォルトでは、SELECT 文は排他ロックで処理されるみたいです。 SQLServer2005では、READ_COMMITTED_SNAPSHOTのオプションが追加されたみたいで、 テーブル作成時に、READ_COMMITTED_SNAPSHOT を ON にすることで、 そのテーブルを SELECT 文処理した場合、デフォルトで共有モードで処理される みたいです。まだ実機でテストしていませんが、テーブル作成時点でREAD_COMMITTED_SNAPSHOTを 指定すればいいだけならば、ソースレベルでは、JETエンジンとSQLServerとを全く同じソースで 運用できる可能性が出てきました。 現場には、2週間後にいくので、その時点で調べてきます。 >ExecuteReaderで取得したものは、すべてDataSetに落とし込みます。 >ExecuteReaderで結果を格納したインスタンス(この例だとCDBkanjya)をDataSetに落とし込み終わった後、Close&Disposeしてあげます。 >後は、DataSet/DataTableに対してREADする処理を記述し、ループ中でUPDATE文を実行する 本筋はこの様に処理するのが正しいかもしれません。 ただ今回のシステムはそれほど、排他処理は問題がなく、排他処理をした事によるシステムの負荷、障害とかの 方が問題なので、今のところ検討しませんが、最終的に明確な対策がないと結論になった場合、利用する事にします。

全文を見る
すると、全ての回答が全文表示されます。
  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.1

OleDb系(OleDbCommandとか、OleDbConnection)ではなく、SQL Serverなら、System.Data.SqlClient 名前空間にある、SqlConnectionやSqlDataReaderやSqlCommand使えば問題解決するかもしれませんが、自信はありません。 後は、気になったのは、同じテーブルを読んでいる最中、同じテーブルを更新するわけですよね?ロックがかかったために残りの9件の更新がおかしくなった可能性はありますが、こちらも正直、自信なしです。 ただ、気になった点としては、上記のプログラムを見る限りでは、FETCH(Read)させなくても、UPDATE文で更新すれば辻褄合いますよね?結局、下記と同じことだと思いますが、下記じゃダメですか? dim 肝炎B as long dim cq as string dim Db As new System.Data.OleDb.OleDbConnection Dim CDBkanjyaCw As new System.Data.OleDb.OleDbCommand Db.ConnectionString = "Provider=SQLOLEDB;Data Source=kokoro00;User ID=sa;Password=kokorocenter;Initial Catalog=kokoro" Db.Open() CDBkanjyaCw.Connection = Db cq = " UPDATE kanjya " cq += " SET 肝炎B = " & 肝炎B.ToString CDBkanjyaCw.CommandText = cq CDBkanjyaCw.ExecuteNonQuery() CDBkanjyaCw.Dispose() Db.Close() FETCH(SELECT)条件が他にあるならばいいのですが、他にSELECTするキーもなく全件取得なSELECTして、その取得した全件をわざわざ1件ずつ患者IDをキーに更新条件つけて1件ずつ更新しなくても、良いのでは? ここに質問する際、まずい箇所を削除した関係でソースを公開されたのであれば、良いのですが、ちょっと気になったもので・・・ 回答になってなくてすいませんが、1つずつ整理して上記をお試しください。

kunkun_129
質問者

お礼

回答ありがとうございます。 >OleDb系(OleDbCommandとか、OleDbConnection)ではなく、SQL Serverなら、System.Data.SqlClient >名前空間にある、SqlConnectionやSqlDataReaderやSqlCommand使えば問題解決するかもしれませんが 出来たら 私も System.Data.SqlClient を使用したいのですが、今回のプログラムは、 SQL Server で運用したソースをそのまま、接続文字列だけの変更だけで、 アクセスのデータベースファイルMDBのJETエンジンにも使用したいのです。 自分なりには、System.Data.SqlClientで接続したソースでは、そのままでは、 MDBのJETエンジンには使えないと思っています。これが使えるようだといいのですが? ご存知ですか?。また、使えたとした場合、その場合System.Data.SqlClientで MDBのJETエンジンにどの様にして接続するのか教えて下さい。 MDBのJETエンジンは、System.Data.oledbClient も使用出来るとのことだし、 SQL Server も System.Data.oledbClient が使えるとの事なので、両方のデータベースの どちらでも可能かなと思って、System.Data.oledbClient を使用しています。 >ただ、気になった点としては、上記のプログラムを見る限りでは、 >FETCH(Read)させなくても、UPDATE文で更新すれば辻褄合いますよね? >結局、下記と同じことだと思いますが、下記じゃダメですか? 単に、データベースにUPDATE するだけなら、それでよいのですが、 この場合 Do While CDBkanjya.Read ..... ..... ..... <==== ここに、レーコドをよんで、その内容で複雑な ..... <==== 計算式が入ります。この計算はSQL文だけでは ..... <=====解決出来ないくらい複雑なので。 cq = " UPDATE kanjya " cq += " SET 肝炎B = " & 肝炎B.ToString cq += " WHERE 患者ID = " & CDBkanjya.Item("患者ID").ToString & " " CDBkanjyaCw.CommandText = cq CDBkanjyaCw.ExecuteNonQuery() Loop ループの間に複雑な演算が40行程入ります。UPしたソースには、「・・・・」で 略しています。説明不足ですみませんでした。 再度色々と確認してみようと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access 2003でサブフォームが更新されません。

    リストボックスの値を変更すると、サブフォームが更新されるようにしたいのです。 サブフォームのレコードソースはクエリから引用しています。 Dim db As Database Dim qry As QueryDef Set db = CurrentDb Set qry = db.QueryDefs("計画クエリ") qry.SQL = newSQL qry.OpenRecordset qry.Close db.Close Set db = Nothing Me!計画クエリのサブフォーム.Form.Requery という形で、更新しようとしても更新されません。詳しい方教えてください。

  • PEAR DBのupdateについて

    PEAR DBにて複数のデータを一度にUPDATEにて更新しようと思っているのですが、うまくいきません。 foreach($data as $value){   $SQL = "update `table_name` set `id` = '" .addslashes($value). "';"; } $res = $this->db->query($SQL); まず、update分をデータ分foreachにて溜め込み、一気にクエリを投げております。insert文の場合はうまく処理してくれるのですが、updateの場合はエラーが返ってきてしまい、処理してくれません。updateの場合、PEAR DBでは不可能なのでしょうか? お分かりになる方、ご教授ください。よろしくお願いいたします。

    • 締切済み
    • PHP
  • アクセスDbのテーブル名の取得(VB2005)

    再度の質問です アクセスDBのテーブル名を取得したのですが、方法をご教示ください。DAOでは tabledefsでとれたのですが・・ 以下のコードで先に進めません。 OpenFileDialog1.Filter = "アクセス ファイル (*.mdb)|*.mdb" OpenFileDialog1.ShowDialog() If OpenFileDialog1.FileName <> "" Then Dim St As String Dim Cn As New System.Data.OleDb.OleDbConnection Dim SQL As System.Data.OleDb.OleDbCommand Dim UserID As String = "Admin" Dim Password As String = "" Dim MDBFile As String = OpenFileDialog1.FileName Dim N As String = Microsoft.VisualBasic.Right(MDBFile, 9) St = "Provider=""Microsoft.Jet.OLEDB.4.0"";" St &= "Data Source=""" & MDBFile & """;" St &= "User ID=" & UserID & ";" St &= "Jet OLEDB:Database Password=" & Password Cn.ConnectionString = St SQL = Cn.CreateCommand Cn.Open() Dim tbl As DataTable tbl = Cn.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"}) ここでtblを見ると TABLE_CATALOG _SCHEMA _NAME _TYPE ・・・DATE_MODIFIED などは見えるのですが、これがDB内のテーブル数だけ繰り返されます。 取得したいのは、TABLE_NAME に ある 例えば "Pub-ID"に相当する内容なのですが、HELPで探しても、その方法がわかりません、ぜひ教えてください。よろしくお願いいたします。

  • SQLiteで最も古いレコードのみの削除

    AndoroidでDBを使うのですが、考える動作のSQL文が作成できません。 テーブルTESTは以下のカラムを持ちます  ・ID - primary key not null  ・VALUE - not null テーブルTESTは最大で10件のレコードを保持します、11件目のレコードが発生したら 最も古い1件目のレコードを削除してから、11件目のデータを新しい10件目のデータとして テーブルに保存します。 そのために「最も古いレコード1件のみを削除する」というSQLを作成したいのですが、 考えたSQL文が正しくないと怒られてしまいます。 delete from TEST as A, (select * from TEST LIMIT 1)as B where A.ID=B.ID; この動作を1つのSQL文で行うのは不可能なのでしょうか?

  • アクセス テーブルデータ他のテーブルにコピーVBA

    win10 access365のmdbファイルにおいて table1のフィールド1がID 数値型 長整数型 値要求あり 重複あり フィールド2が氏名 短いテキスト型 225 値要求なし 重複あり  table2;フィールド1がID 数値型 長整数型 値要求あり 重複あり フィールド2が氏名 短いテキスト型 225 値要求なし 重複あり  上記に置いて table2の新しいデータとして table1のデータをコピーしたい、 ただしtable1には レコードは1行だけとします (table1にレコードが複数行ある場合の最新レコードだけtable2にコピーも出来れば知りたいです) アクセス付属の更新クエリーでは、どうも うまくいきません sqlにおいて UPDATE table1, table2 SET table2.ID = [table1]![ID], table2.氏名 = [table1]![氏名]; 上記動作しません Function table1から2() Dim db As DAO.Database Dim rst As Recordset Dim TB As Table Dim Rdset As Recordset On Error Resume Next Set db = DBEngine(0)(0) Set Rdset = db.OpenRecordset("table2", DB_OPEN_TABLE) Rdset.AddNew Rdset![ID] = Table![table1]![ID] Rdset![氏名] = Table![table1]![氏名] Rdset.Update End Function table1, table2を それぞれ 同名のフォームを作り Function table1から2() Dim db As DAO.Database Dim rst As Recordset Dim fm As Form Dim Rdset As Recordset On Error Resume Next Set db = DBEngine(0)(0) Set fm = Forms![table1] If Rdset.BOF Then Exit Function Else Set Rdset = db.OpenRecordset("table2", DB_OPEN_TABLE) Rdset.AddNew Rdset![ID] = Forms![table1]![ID] Rdset![氏名] = Forms![table1]![氏名] Rdset.Update End If End Function いずれも table2のデータ更新が なされていません すみません 宜しくお願い致します

  • EXCEL vbaからACCESSのクエリを開く

    EXCEL2010 WEBを参照してEXCEL VBAでACCESSのクエリを開くマクロを流用しました。 下記がマクロの内容です。 Private Sub Import() Dim db As ADODB.Connection Dim rs As ADODB.Recordset 'ACCDBファイルに接続します Set db = New ADODB.Connection db.Provider = "Microsoft.Ace.OLEDB.12.0" db.Open "C:\work\TEHAI.accdb" 'レコードセットを開きます Set rs = New ADODB.Recordset 'Accessのクエリを開く rs.Open Source:="TEHAI", ActiveConnection:=db If rs.EOF Then MsgBox "抽出した結果、レコードが見つかりません。" Else ' レコードをシートへ貼り付ける Range("A1").CopyFromRecordset rs End If rs.Close Set rs = Nothing Set db = Nothing End Sub これを実行すると、 抽出した結果、レコードが見つかりません。 が表示されます。 ACCESS単体でTEHAIクエリを実行したら、約3万件くらいヒットします。 EXCELマクロから実行したらACCESSからデータをもってこられません。 なぜレコードが見つかりません、 となるのでしょうか? マクロのどこがおかしいのか、教えていただきたく。 ちなみに、もともとの内容から変更したのは db.Open "C:\work\TEHAI.accdb" rs.Open Source:="TEHAI", の2ヶ所だけです。

  • Mysql UPDATE出来ません

    PHP+MySQLでホームページ開発中ですが、MySQLで特定idのフィールドの更新処理(UPDATE)が出来ません。初心者です宜しくお願いします。 【Mysqlで確認した点】 (1)XAMPP・MyAdminからは以下のSQL文で問題なく更新できる。 "UPDATE upload_list SET rem='ABCDEF' WHERE id=15;" 【問題は?】 以下のphpからは更新できません。 【phpで確認した点は?】 (1)DBへ正常に接続してる。 (2)文字コードも正常にSETしてる。 (3)UPDATE実行後の$RESULT(返り値)がない。 (4)PHPを実行後、MyAdminでDBを確認しても更新されていない。 【phpコード】 <?php //データベースパラメータ定義 $DBSERVER="localhost"; $DBUSER="root"; $DBPASSWORD=""; $DBNAME="up_load"; $DATANAME="upload_list"; //Mysqlに接続 if(mysql_connect($DBSERVER,$DBUSER,$DBPASSWORD)) {echo "DB接続済/";} else {echo "<h2>データベースに接続できません</h2>";die();} //Mysql停止 //データベースを選定 mysql_select_db($DBNAME); //Mysqlの文字セットを定義 $sql = "SET NAMES ujis;"; $result = mysql_query($sql); if ($result==true){echo "文字コードSET済/";} //更新id、rem(更新記事)をSET $id=15; $new_rem="ABCDEF"; echo $DATANAME."/".$id."/".$new_rem."/"; //Mysql更新処理 $result=mysql_query('UPDATE $DATANAME SET rem=$new_rem WHERE id=$id;'); if ($result==true){echo "更新!";} else {echo "更新出来ず";} //XAMMP phpMyAdminからは以下のSQL文で更新できた。 //UPDATE upload_list SET rem='ABCDEF' WHERE id=15; ?> 【実行後のブラウザ表示】 DB接続済/文字コードSET済/upload_list/15/ABCDEF/更新出来ず

    • ベストアンサー
    • MySQL
  • UPDATEできない

    PHP4.3+MySQL4.0.25+Win2000Proで構築中です。 条件が一致するかどうか調べて、一致するレコードがあれば上書き、一致しなければ新規登録をさせています。 mysql_select_db("table_name", $mysql); $result=mysql_query("SELECT * FROM challenge WHERE id=$id && dai=$dai && tyu=$tyu && syo=$syo", $mysql); $number = mysql_num_rows($result); とし、 if($number){ $sql="UPDATE challenge SET mycom='$mycom', procom='$procom', sinsei='$sinsei' where id=$id and dai=$dai and tyu=$tyu and syo=$syo"; $update=mysql_query($sql,$mysql); }else{ $sql="INSERT INTO challenge values ('$id','$dai','$tyu','$syo','$status','$mycom','$procom','$taicom','$sinsei','$kyoka')"; $insert=mysql_query($sql,$mysql); } mysql_close($mysql); 一致するレコードがあれば上書き、なければ新規登録させようとしていますが、新規書き込みはできるのですが上書きができません。 エラーがでるわけでもなし、ただ変化がないというだけです。 $updateの中身を見てみましたが何も入っていません。 ユーザーにはupdate権限がありますし、テーブルに権限は設定していません。 何かお気づきの点がありましたらご教授お願いいたします。

    • ベストアンサー
    • MySQL
  • VB2010 SQLのUPDATE文エラー

    VB2010とAccess2007で使用しています データを日付順に連番を付けるコードを作成したのですが『UPDATE文構文エラーです』等のエラーが発生します? ご教授お願いします。 Private Sub Button連番_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button連番.Click Dim DT As New DataTable Try Using OleCn As New OleDbConnection(mdbPath) Dim SQL As String = "" SQL = "SELECT * FROM tableA ORDER BY 依頼日" Using DA As System.Data.OleDb.OleDbDataAdapter = _ New System.Data.OleDb.OleDbDataAdapter(SQL, OleCn) DT.Clear() DA.Fill(DT) End Using End Using Using OleCn As New OleDbConnection(mdbPath) Dim SQL As String = "" SQL = "UPDATE tableA SET No = @no WHERE 登録ID_Export = @登録ID" Dim OleCmd As New OleDbCommand(SQL) OleCmd.Connection = OleCn OleCn.Open() OleCmd.Parameters.Add("@no", OleDbType.Integer) OleCmd.Parameters.Add("@登録ID", OleDbType.Integer) For i As Integer = 1 To DT.Rows.Count OleCmd.Parameters("@no").Value = i OleCmd.Parameters("@登録ID").Value = CInt(DT.Rows(i)("登録ID_Export").ToString) OleCmd.ExecuteNonQuery() Next i OleCmd.Dispose() OleCn.Dispose() End Using Catch ex As Exception MessageBox.Show(ex.ToString, "例外発生") Exit Sub End Try MsgBox("ok") End Sub

  • Access2003の更新クエリ、レコードの更新欄のフィールド名を自動的に入力するには?

    AとBという2つのテーブルが、全く同じフィールドを30個持っています。 AとBでIDが同一のモノのみ、AにBのデータを丸々更新したいのですが [B].[フィールド名1]というように、IDを除いた残り29個のレコードの更新の欄に 手入力する方法で現在行っています。 追加クエリなどだとフィールドが同じ場合は自動的にレコードの追加欄にフィールド名が現れるのですが 同様に更新クエリでもフィールド名を自動的に出す方法はありますか? 現在上記のような更新クエリを10件以上新規で作成しなければならないのですが 各件に29個も手入力で行うのが非常に面倒でなりません。 やはりSQL等で仕組んでいくようにするのでしょうか?

このQ&Aのポイント
  • 【DCP-J926N-B】の印刷ができなくなりました。設定が悪いのか、原因はわかりませんが、トラブルの経緯や試したこと、エラーについて教えてください。
  • お使いの環境は【アイパット】で、接続は【無線LAN】です。関連するソフトやアプリについても教えてください。
  • 電話回線の種類は【さすだけ】ということです。ブラザー製品に関するお困りごとですね。
回答を見る