sql >> データベース >  >> RDS >> Access

ツリービューコントロールのチェックマーク-ノードの追加と削除のマーク

    はじめに。

    ツリービューコントロールチュートリアルのこのエピソードでは、追加/削除の方法を学習します。 ノード。候補アイテムの追加/削除の位置にチェックマークが付けられ、 Add()が必要になります 新しいノードまたはRemove() マークされたノード。ノードの追加は、マークされたノードまたは子ノードと同じレベルにすることができます。

    これまでのTreeViewコントロールチュートリアルセッション。

    1. MicrosoftTreeViewControlチュートリアル
    2. TreeViewコントロールを使用したアクセスメニューの作成
    3. TreeViewコントロールへの画像の割り当て
    4. TreeViewControl-2への画像の割り当て

    MS-Accessフォームのデモツリービューコントロールの通常のビューと他のコントロールを以下に示します。

    TreeViewコントロールのデモのデータテーブル。

    サンプルという名前のテーブル 最初のチュートリアルセッションで使用しましたが、ここでも使用します。これは、Access Database、テーブル、フォーム、およびレポートのコントロール構造のレコードが階層順に配置された小さなテーブルであり、理解しやすいものです。

    ID 列(ツリービューキー )はオートナンバーフィールドです。

    このチュートリアルセッションでは、新しい訪問者が更新されます。

    最初のチュートリアルセッションを完了していない場合は、2番目のセッションページ:ツリービューコントロールを使用したアクセスメニューの作成からデモデータベースをダウンロードできます。そのデータベースには、サンプルという名前のテーブルがあります。 およびフォームfrmSample 。それらを現在のデータベースにインポートできます。 frmMenuという名前の別のフォームがあります そこにあり、コマンドボタンをコピーできますすべて展開 すべて折りたたむ およびそれらのコマンドボタンfrmMenuからのイベントプロシージャをクリックします frmSampleに このセッションを続行するためのコードモジュール。

    先に述べたように、ImageListコントロールを他のプロジェクトにアップロードされた画像と共有できるので、最後のチュートリアルセッションのImageListコントロールのコピーを作成し、アップロードされたすべての画像とともにここに持ってきて、 frmSampleのツリービューコントロールノード 。

    画像を使用したImageListコントロールのインポート。

    次の方法で、アップロードされた画像を別のデータベースに追加して、既存のImageListコントロールを取り込むことができます。

    1. 手動でアップロードされた画像を含むImageListコントロールがあるデータベースから、ImageListコントロールを含むフォームをアクティブなデータベースにインポートします。 ImageListコントロールをコピーして、必要な場所にフォームに貼り付けます。

    2. または、最初に、ImageListコントロールをデータベースからクリップボードにコピーします。以前のチュートリアルセッションからデモデータベースをダウンロードした場合は、アップロードされた画像を含むImageListコントロールがすでにあります。 ImageListコントロールをClipboardにコピーした後、データベースを閉じます。

    3. ターゲットデータベースを開き、ImageListコントロールが必要な場所でフォームを開き、フォームに貼り付けます。

      CreateTreeView()の次のコード行 サブルーチンでは、ImageListオブジェクト参照をツリービューコントロールに渡すことができます。

       Dim tv As MSComctlLib.TreeViewDim ImgList As MSComctlLib.ImageListSet tv = Me.TreeView0  .Objecttv.Nodes.ClearSet ImgList = Me.ImageList0  .Objecttv.ImageList =ImgList 

    フォーム上で異なる場合は、コード内で強調表示されているオブジェクト名を変更します。

    その後、画像キー名をTreeView Nodes.Add()に追加できます。 メソッドの最後の2つのパラメータ。

    これらの演習は、以前のセッションですでに実行しました。最初のチュートリアルセッションで作成し、上記の変更を加えて実装したテーブルおよびツリービューコントロールを使用していることを思い出してください。

    チェックマークが付いたノードのプロパティ値の表示。

    選択したノードのキー親キー、 およびテキスト プロパティは、ツリービューコントロールの右側にあるテキストボックスに表示されます。 チェックボックス キャプション付き:子ノード 削除 ノード、 およびノードの追加 コマンドボタンは、フォームに新しく追加されたものです。それらの機能については、後ほど説明します。

    TreeViewコントロールにチェックボックスを表示します。

    通常、ツリービューコントロールのプロパティシートでプロパティを有効にしない限り、チェックボックスはツリービューコントロールに表示されません。ここでは機能が制限されています。ここで行うことはすべて、チェックボックスなしでも実行できます。

    チェックボックスを使用するためのより良いアプローチは、Access Project Menuから、ユーザーが選択したブランチのランダムな選択に基づいて、会社のビジネスの選択されたブランチの場所に関するレポートを作成することです。

    ここでの目的は、この機能を認識し、その使用法のデモを実行することです。

    1. デザインビューでTreeViewコントロールを使用してフォームを開きます。
    2. TreeViewコントロールを右クリックし、TreeCtrlオブジェクトを強調表示します 、プロパティを選択します プロパティシートを表示するオプション。
    3. チェックボックスにチェックマークを付ける 以下の画像に示すように、プロパティコントロールのオプション。

    上部にあるデモTreeView画像、詳細。

    デモフォームfrmSampleにあるものを見てみましょう このページの上部に表示されます。ツリービューコントロールと上位2つのコマンドボタン、すべて展開 およびすべて折りたたむ クリックでノードを展開または折りたたみます。前回のエピソードでそれらの機能を確認しました。

    右側には、見出しラベルの下に3つのTextBoxがあります:プロパティ値 、チェックマークが付いたノードのキーを表示するため 、 ParentKey、 およびテキスト 値。

    ノードの削除 コマンドボタンは、チェックマークが付いたノードまたはノードとその子ノードを削除します。

    ノードの追加コマンドボタンを選択する前に 、テキスト プロパティ値を編集して、新しいノードの新しいテキスト値に置き換える必要があります。

    ノードの追加の上 コマンドボタン、チェックボックスがあります 子ノードというラベルが付いています。 ノードの追加 および子ノード チェックボックスが連携して、新しいノードを表示する場所に関するルールを設定します。

    ノードの追加アクションについて。

    ハイパーリンクに新しいノードを追加するとします。 フィールドの下のフィールド グループ(または親ノード)のデータ型リスト。このページの上部にあるデモ画像を見てください。ここで、日付フィールドにチェックマークを付けています。 ノード、他の子ノードの中でも。右側のプロパティシートには、そのキーが表示されます: X15 、ParentKey: X4 &テキスト:日付フィールド 説明。

    テキストを変更します:日付フィールド ハイパーリンクへ プロパティ表示テキストボックスで、ノードの追加をクリックします コマンドボタン。出力は次のようになります。

    チェックマークを付けるとフィールド 親ノードアイテムと子ノードにチェックマークを付けます [ノードの追加]の上にあるオプション コマンドボタン、同じ結果が得られます。

    代わりに、日付フィールドでノードのチェックマークを付けたままにすると 子ノードにチェックマークを付けます ノードの追加の上にあるオプション コマンドボタンをクリックすると、次のような結果が得られます。

    子ノードは、チェックマークの付いたノードの下に作成されます。

    ノードの追加アクションは、最初に基になるテーブルに新しいレコードを作成する必要があります。

    サンプルに新しいレコードが作成されます 新しいテキストを含む表:ハイパーリンク およびParentID 値。 AutoNumberフィールドは新しい番号を生成し、それを取得してノードのキー値として使用します。

    ノードの追加サブルーチンサブルーチンVBAコードを以下に示します。

     Private Sub cmdAdd_Click()Dim strKey As StringDim lngKey As LongDim strParentKey As StringDim lngParentkey As LongDim strText As StringDim lngID As LongDim strIDKey As StringDim childflag As IntegerDim db As DAO.DatabaseDim strSql As StringDim intflag As IntegerDim tmp As Integeri =0For Each tmpnode In tv.Nodes If tmpnode.Checked Then tmpnode.Selected =True i =i + 1 End IfNextIf i> 1 Then MsgBox "Selected Nodes:"&i&vbCr&"追加をマークするノードを1つだけ選択。"、vbCritical、" cmdAdd() "Exit SubEnd If'フォームからプロパティ値を読み取る=Trim(Me![TxtKey])lngKey =Val(Mid(strKey、2))strParentKey =Trim(Me![TxtParent])lngParentkey =IIf(Len(strParentKey)> 0、Val(Mid(strParentKey、2))、0)strText =Trim(Me![Text])'子ノードオプションの読み取りsettingchildflag=Nz(Me.ChkChild.Value、0)intflag =0strSql ="INSERT INTO Sample([Desc]、[ParentID])" If lngParentkey =0 And childflag =0 Then'ルートレベルノード、ParentKeyiを追加s空白strSql=strSql& "SELECT'"&strText& "'AS [Desc]、'"& "" strSql =strSql& "'AS ParentID FROM Sample WHERE((Sample.ID =1));" intflag =1ElseIf(lngParentkey> =0)And(childflag =True)Then'子ノードをチェックマークの付いたノードに挿入します。ここでは、親キーとして使用されるキー値strSql =strSql& "SELECT'"&strText& "'AS [Desc ]、'"&lngKey strSql =strSql&"' AS ParentID FROM Sample WHERE((Sample.ID =1)); " intflag =2ElseIf(lngParentkey> =0)And(childflag =False)Then'チェックマークの付いたレベルでノードを挿入し、同じParentKeyの下にアイテムを追加しますstrSql =strSql& "SELECT'"&strText& "'AS [Desc]、 '"&lngParentkey strSql =strSql&"' AS ParentID FROM Sample WHERE((Sample.ID =1)); " intflag =3End IfSet db =CurrentDbdb.ExecutestrSql'新しく作成された自動番号を取得してKeylngID=DMax( "ID"、 "Sample")strIDKey =KeyPrfx&CStr(lngID)On Error GoTo IdxOutofBoundSelect Case intflag Case 1'Add Root- level Node、ParentKeyは空白tv.Nodes.Add 、、 strIDKey、strText、 "folder_close"、"folder_open"ケース2'子ノードをチェックマークの付いたノードに挿入します。ここでは、親キーとして使用されるキー値tv.Nodes.Add strKey 、tvwChild、strIDKey、strText、 "left_arrow"、"right_arrow"ケース3'チェックマークの付いたレベルでノードを挿入し、同じParentKeyの下にアイテムを追加しますtv.Nodes.Add strParentKey、tvwChild、strIDKey、strText、 "left_arrow"、 " right_arrow "End Selecttv.Refresh'FormWithMeからプロパティ値を消去します。 

    VBAコードを調べてみましょう。ローカル変数宣言の後、TreeViewノードはチェックマークがないかスキャンされ、チェックマークが付けられたアイテムの数を取得します。チェックマークの付いたノードが複数ある場合は、メッセージが表示され、プログラムが中止されます。

    注: チェックマークの代わりに、ノードを直接クリックして選択できます。どちらの場合も、チェック/クリックされたノードはパラメータとしてイベントプロシージャに渡されます。チェックマークは、プロジェクトメニューから複数の項目を選択する必要がある場合に適しています。たとえば、特定のレポートの別のデータセットを選択する場合などです。

    チェックされたノードのプロパティ値は、フォームコントロールから strKeyに読み込まれます。 、 strParentKey、 およびstrText。 ID、ParentID数値は抽出され、 lngKeyに保存されます およびlngParentKey SQL文字列で使用する変数。

    次に、子ノード チェックボックスの値はChildFlagに保存されます 可変。

    選択したノードと子ノードに基づいて、3つの異なるSQL文字列のセットが作成されます。 [ノードの追加]コマンドボタンの上にある[チェックボックス]オプション。

    1. ParentIDの場合 フォームのプロパティ値は空で、子ノード チェックボックスがチェックされていない場合、ユーザーがルートレベルノードにチェックマークを付けたため、ルートレベルの新しいレコードが作成されます。
    2. ParentIDの場合 プロパティ値>=0 および子ノード チェックボックスがオンになっている(チェック済み )次に、チェックマーク付きノードの子ノードとして新しいレコードが作成されます。チェックマークが付いたノードのキー (ID)は、新しいノードの新しいレコードでParentIDとして使用されます。
    3. ParentIDの場合 値>=0 および子ノード チェックボックスオプションが選択されていません(チェックされていません )次に、チェックマークが付いたノードと同じレベルで、新しいノードの新しいレコードが作成されます。

    intFlag 変数は、ツリービューコントロールで作成するノードのタイプを示すものとして、SQLの実行に応じて1、2、または3の3つの値のいずれかで設定されます。

    次に、オプションの選択に基づいてSQLが実行され、サンプルに新しいレコードが作成されます。 新しいオートナンバーIDフィールド値を持つテーブル。

    次に、 DMax() 関数は、一意のレコードIDを新しいノードのキー値として返します。

    ノードタイプオプション(1、2、または3)に基づいて、ツリービューコントロールにノードが作成されます。

    プロパティ表示のテキストボックスの内容がクリアされます。


    ノードまたは子のあるノードを削除します。

    ノードの削除 オプションは、前の演習よりもはるかに簡単です。チェックマークの付いたノードとその子(存在する場合)をツリービューコントロールから削除するだけです。関連するレコードもテーブルから削除されます。

    ノード削除のVBAコードを以下に示します。

     Private Sub cmdDelete_Click()Dim nodId As Long、nodParent As LongDim strSql As StringDim db As DAO.DatabaseDim j As IntegerDim tmpnode As MSComctlLib.NodeDim strKey As StringDim strMsg As Stringj =0'チェックマークの付いたノードを取得tv.Nodes If tmpnode.Checked Then tmpnode.Selected =True strKey =tmpnode.Key j =j + 1 End IfNext If j> 1 Then MsgBox "選択されたノード:"&j&vbCr&"削除するノードを1つだけ選択します。" 、vbCritical、 "cmdDelete()" Exit Sub End IfSet tmpnode =tv.Nodes.Item(strKey)tmpnode.Selected =TrueSet db =CurrentDb'マークされたNodeIftmpnode.Children>0Thenの子ノードの存在を確認します'警告:「ランダムでノードを削除すると、孤立したノードがテーブルに残り、次のツリービューの読み込みプロセス中にエラーが発生します」strMsg ="マークされたノードには"&tmpnode.Children& "Children。"&vbCr&"子ノードも?」 If MsgBox(strMsg、vbYesNo + vbCritical、 "cmdDelete()")=vbYesThen'再確認して確認を取得します。 strMsg ="子ノードの最も深いセットのみを削除"&vbCr strMsg =strMsg&"およびそれらの親ノードを一度に削除します。" &vbCr&vbCr strMsg =strMsg& "続行してもよろしいですか..?" If MsgBox(strMsg、vbYesNo + vbCritical、 "cmdDelete()")=vbYes Then Do until tmpnode.Children =0 nodId =Val(Mid(tmpnode.Child.Key、2))'子ノードtv.Nodes.Removetmpnodeを削除します.Child.Index'関連するレコードを削除しますstrSql="DELETE Sample。*、Sample.ID FROM Sample WHERE(((Sample.ID)="&nodId& "));" db.Execute strSql Loop Else Exit Sub End If Else Exit Sub End IfEnd If nodId =Val(Mid(tmpnode.Key、2))'親を削除tv.Nodes.Removetmpnode.Keytv.Refresh'マークされたレコードを削除strSql=" DELETE Sample。*、Sample.ID FROM Sample WHERE(((Sample.ID)="&nodId&")); " db.Execute strSql'FormWithMeからプロパティ値を消去します。.TxtKey="".TxtParent ="" .Text ="" End With Set db =Nothing End Sub 

    ローカル変数宣言の後、ForEach。 。 。次へ ループは、チェックマークが付いたノードの数を取得します。チェックマークの付いた項目が複数見つかった場合は、メッセージが表示され、プログラムは中止されます。

    チェックマークが付いている項目が1つしかない場合、2番目のステップの検証チェックでは、選択したノードの子ノードの存在を探します。子ノードが見つかった場合は、その効果に関するメッセージが表示されます。ユーザーは、最初に子ノードを削除し、次にチェックマークが付いた親ノードを削除する意図を再確認する必要があります。

    注: ユーザーは、最初に最も深いレベルの子ノードを削除するか、祖父母ノードをマークせずに親ノードのみをマークすることにより、直接の親ノードを持つすべての最も深いレベルの子ノードを削除することをお勧めします。このレベルで削除ルールを制限すると、コードがシンプルで理解しやすくなります。このルールに違反すると、一部のノードが孤立したままになり、次回ツリービューを開いたときにエラーが発生する可能性があります

    子ノードは1つずつ削除され、テーブル上の対応するレコードも次々に削除されます。次に、マークされた親レコードを削除します。

    マークされたノードに子ノードがない場合は、検証チェックの直後に削除され、対応するテーブルレコードも削除されます。

    フォームのプロパティ表示テキストボックスの内容がクリアされます。


    フォームfrmSampleの完全なクラスモジュールVBAコード。

    以下は、 frmSampleの完全なVBAコードです。 のクラスモジュール、折りたたみノードを拡張するための他の小さなサブルーチン、 TreeView0_NodeCheck イベントプロシージャ、 cmdExit コマンドボタンクリックイベント、 Form_Load() プロシージャ、および CreateTreeView() サブルーチン:

     Option Compare DatabaseOption ExplicitDim tv As MSComctlLib.TreeViewDim ImgList As MSComctlLib.ImageListConst KeyPrfx As String ="X" Private Sub cmdAdd_Click()Dim strKey As StringDim lngKey As LongDim strParentKey As StringDim lngParentkey As LongDim strText As StringDim lng StringDim childflag As IntegerDim db As DAO.DatabaseDim strSql As StringDim intflag As IntegerDim tmpnode As MSComctlLib.NodeDim i As Integeri =0For Each tmpnode In tv.Nodes If tmpnode.Checked Then tmpnode.Selected =True i =i + 1 End IfNextIf i> 1次に、MsgBox "Selected Nodes:"&i&vbCr& "Select only One Node to mark Addition。"、vbCritical、 "cmdAdd()" Exit SubEnd If'Read Property Values from FormstrKey =Trim(Me![TxtKey])lngKey =Val(Mid(strKey、2))strParentKey =Trim(Me![TxtParent])lngParentkey =IIf(Len(strParentKey)> 0、Val(Mid(strParentKey、2))、0)strText =Trim(Me![テキスト])'子ノードオプションの読み取りsettingchildflag=Nz(Me.ChkChild.Value、0)intflag =0strSql ="INSERT INTO Sample([Desc]、[ParentID])" If lngParentkey =0 And childflag =0 Then'ルートレベルノードを追加、ParentKeyは空白strSql =strSql& "SELECT'"&strText& "'AS [ Desc]、'"&" "strSql =strSql&"' AS ParentID FROM Sample WHERE((Sample.ID =1)); " intflag =1ElseIf(lngParentkey> =0)And(childflag =True)Then'子ノードをチェックマークの付いたノードに挿入します。ここでは、親キーとして使用されるキー値strSql =strSql& "SELECT'"&strText& "'AS [Desc ]、'"&lngKey strSql =strSql&"' AS ParentID FROM Sample WHERE((Sample.ID =1)); " intflag =2ElseIf(lngParentkey> =0)And(childflag =False)Then'チェックマークの付いたレベルでノードを挿入し、同じParentKeyの下にアイテムを追加しますstrSql =strSql& "SELECT'"&strText& "'AS [Desc]、 '"&lngParentkey strSql =strSql&"' AS ParentID FROM Sample WHERE((Sample.ID =1)); " intflag =3End IfSet db =CurrentDbdb.ExecutestrSql'新しく作成された自動番号を取得してKeylngID=DMax( "ID"、 "Sample")strIDKey =KeyPrfx&CStr(lngID)On Error GoTo IdxOutofBoundSelect Case intflag Case 1'Add Root- level Node、ParentKeyは空白tv.Nodes.Add 、、 strIDKey、strText、 "folder_close"、"folder_open"ケース2'子ノードをチェックマークの付いたノードに挿入します。ここでは、親キーとして使用されるキー値tv.Nodes.Add strKey 、tvwChild、strIDKey、strText、 "left_arrow"、"right_arrow"ケース3'チェックマークの付いたレベルでノードを挿入し、同じParentKeyの下にアイテムを追加しますtv.Nodes.Add strParentKey、tvwChild、strIDKey、strText、 "left_arrow"、 " right_arrow "End Selecttv.Refresh'FormWithMeからプロパティ値を消去します。 Click()DoCmd.CloseEnd SubPrivate Sub cmdDelete_Click()Dim nodId As Long、nodParent As LongDim strSql As StringDim db As DAO.DatabaseDim j As IntegerDim tmpnode As MSComctlLib.NodeDim strKey As StringDim strMsg As Stringj =0'チェックマーク付きノードを取得tv.Nodesの各tmpnodeIftmpnode.Checked Then tmpnode.Selected =True strKey =tmpnode.Key j =j + 1 End IfNext If j> 1 Then MsgBox "Selected Nodes:"&j&vbCr& "Select Only One Node to Delete。"、vbCritical、" cmdDelete() "Exit Sub End IfSet tmpnode =tv.Nodes.Item(strKey)tmpnode.Selected =TrueSet db =CurrentDb'マークされたNodeIftmpnode.Childrenの子ノードの存在を確認します> 0次に、「警告:」ノードをランダムに削除すると、テーブルに孤立したノードが残り、次のツリービューの読み込みプロセス中にエラーが発生します。strMsg="マークされたノードには"&tmpnode.Children&"子があります。 "&vbCr&"子ノードも削除しますか? "If MsgBox(strMsg、vbYesNo + vbCritical、" cmdDelete() ")=vbYes Then'再確認して確認を取得します。strMsg="子ノードの最も深いセットのみを削除します"& vbCr strMsg =strMsg& "およびその親ノードを一度に。"&vbCr&vbCr strMsg =strMsg& "Are you sure to Proceed ..?" If MsgBox(strMsg、vbYesNo + vbCritical、 "cmdDelete()")=vbYes次に、tmpnode.Children =0まで実行します。nodId=Val(Mid(tmpnode.Child.Key、2))'子ノードを削除しますtv.Nodes.Removetmpnode.Child.Index'関連するレコードを削除しますstrSql="DELETE Sample。*、 Sample.ID FROM Sample WHERE(((Sample.ID)="&nodId&")); "db.Execute strSql Loop Else Exit Sub End If Else Exit Sub End IfEnd If nodId =Val(Mid(tmpnode.Key、2 ))'親tv.Nodes.Removetmpnode.Keytv.Refreshを削除します'マークされた記録を削除しますd strSql ="DELETE Sample。*、Sample.ID FROM Sample WHERE(((Sample.ID)="&nodId& "));" db.ExecutestrSql'フォームからプロパティ値を消去します。TxtKey=""。 TxtParent ="" .Text ="" End With Set db =Nothing End SubPrivate Sub cmdExpand_Click()Dim nodExp As MSComctlLib.Node For Each nodExp In tv.Nodes nodExp.Expanded =True NextEnd SubPrivate Sub cmdCollapse_Click()Dim nodExpAsMSComctlLib。 Node For Each nodExp In tv.Nodes nodExp.Expanded =False NextEnd SubPrivate Sub Form_Load()CreateTreeView cmdExpand_ClickEnd SubPrivate Sub CreateTreeView()Dim db As DatabaseDim rst As RecordsetDim nodKey As StringDim ParentKey As StringDim strText As StringDim strSql As StringSet tv =Me.Tree .Objecttv.Nodes.Clear'TreeViewのImageListプロパティへのImageListコントロール参照を渡します。SetImgList=Me.ImageList0.Objecttv.ImageList=ImgListstrSql ="SELECT ID、Desc、ParentID FROM Sample; "Set db =CurrentDbSet rst =db.OpenRecordset(" sample "、dbOpenTable)Do While Not rst.EOF And Not rst.BOF If Nz(rst!ParentID、" ")=" "Then nodKey =KeyPrfx&CStr(rst!ID)strText =rst!desc tv.Nodes.Add ,, nodKey、strText、 "folder_close"、 "folder_open" Else ParentKey =KeyPrfx&CStr(rst!ParentID)nodKey =KeyPrfx&CStr( rst!ID)strText =rst!desc tv.Nodes.Add ParentKey、tvwChild、nodKey、strText、 "left_arrow"、 "right_arrow" End Ifrst.MoveNextLooprst.CloseOn Error GoTo 0Set rst =NothingSet db =NothingEnd SubPrivate Sub TreeView0_NodeCheck(ByVal Node As Object)Dim xnode As MSComctlLib.NodeSet xnode =Node If xnode.Checked Then xnode.Selected =True With Me .TxtKey =xnode.Key If xnode.Text =xnode.FullPath Then .TxtParent ="" Else .TxtParent=xnode。 Parent.Key End If .Text =xnode.Text End With Else xnode.Selected =False With Me .TxtKey ="" .TxtParent ="" .Text ="" End WithEnd IfEnd Sub 

    frmSampleフォームのデザインビューを以下に示します。

    あなたの観察、コメント、提案は大歓迎です。

    デモデータベースはダウンロード用に添付されています。


    辞書オブジェクト

    1. 辞書オブジェクトの基本
    2. 辞書オブジェクトの基本-2
    3. 辞書オブジェクトのキーとアイテムの並べ替え
    4. 辞書からレコードを表示する
    5. クラスオブジェクトをディクショナリアイテムとして追加
    6. クラスオブジェクトディクショナリアイテムの更新


    1. ASCII()の例– MySQL

    2. SqlAlchemyとcx_Oracleを使用してPandasDataFrameをOracleデータベースに書き込む場合は、to_sql()を高速化します

    3. pipを使用した特定のパッケージバージョンのインストール

    4. ビジネス継続性のためのPostgreSQLの構成