掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
同時実行違反にならないようにするには? (ID:142556)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
・ソース ①FormDataAddという別フォームに、 バーコード(txtAddBarcode)、商品番号(txtAddBan)、商品名(txtAddName)、色番号(txtAddColor)、サイズ(txtAddSize)、格納番号(txtAddDown)、数値(txtAddSize)というテキストボックスがあり バーコード〜サイズまでは普通に入力し、格納番号はテーブル内の1〜12に入れる場所を示すものであり(つまり1〜12以外の数値は無い)、数値は格納番号内で示した場所に入れる値をさします。 そして、内容を記入しButtonを押したらFormMainのDataAddサブを実行すると言うものです。 ②バーコードを主キーとしていますのでButtonを押した時に同じバーコード値が無ければバーコード〜サイズまでと格納番号で示した所に数値を追加。 さらに格納番号で示した所以外の1〜12の所は0で埋める。 すでに同じバーコードがあると1〜12の値と商品トータルの値のみを変更する(今ある値と今回FormDataAddで入力された格納場所と商品トータル値を加算)。 ちなみにバーコードというのは単なる数値が入ってるものです。 Public Class FormMain Public Conn As New OleDb.OleDbConnection Public CreateSelect As New OleDb.OleDbCommand("SELECT * FROM CreateTable", Conn) Public CreateDAdapter As New OleDb.OleDbDataAdapter(CreateSelect) Public CreateBuilder As New OleDb.OleDbCommandBuilder(CreateDAdapter) Public CreateDSet As New DataSet Private Sub FormMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\CreateFile.mdb" SyohinDAdapter.Fill(CreateDSet) End Sub Public Sub DataAdd() Dim SKey(0) As DataColumn SKey(0) = CreateDSet.Tables(0).Columns("バーコード") CreateDSet.Tables(0).PrimaryKey = SKey Call KeyGet() Dim KeyRow As DataRow KeyRow = CreateDSet.Tables(0).Rows.Find(FormDataAdd.txtAddBarcode.Text) If KeyRow Is Nothing Then Dim CreateRow As DataRow CreateRow = CreateDSet.Tables(0).NewRow CreateRow("バーコード") = FormDataAdd.txtAddBarcode.Text CreateRow("商品番号") = FormDataAdd.txtAddBan.Text CreateRow("商品名") = FormDataAdd.txtAddName.Text CreateRow("色番号") = FormDataAdd.txtAddColor.Text CreateRow("サイズ") = FormDataAdd.txtAddSize.Text For i As Integer = 5 To 16 CreateRow(i) = 0 Next CreateRow(Integer.Parse(FormDataAdd.txtAddDown.Text) + 4) = FormDataAdd.txtAddSu.Text CreateRow("商品別トータル") = FormDataAdd.txtAddSu.Text CreateDSet.Tables(0).Rows.Add(CreateRow) CreateDAdapter.Update(CreateDSet) Else Dim KeyNum As Integer = 0 KeyNum = CreateDSet.Tables(0).Rows.IndexOf(KeyRow) CreateDSet.Tables(0).Rows(KeyNum)(Integer.Parse(FormDataAdd.txtAddDown.Text) + 4) += Integer.Parse(FormDataAdd.txtAddSu.Text) CreateDSet.Tables(0).Rows(KeyNum)("商品別トータル") += Integer.Parse(FormDataAdd.txtAddSu.Text) CreateDAdapter.Update(CreateDSet) End If End Sub End Class ※長々となりすいません。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.