| |
VB.NET - FortgeschritteneAbfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 06.10.17 10:06 |
| Hallo zusammen,
brauche eure Hilfe zum Thema DBNULL
mit meinem Code möchte ich dem User die Anzahl bereits "Gefundener" Anzeigen in eine ListBox er soll entscheiden einfügen Ja, Nein.
es gibt leider auch keine WWerte in der MAXIMO Spalte, wie kriege ich die Abfrage doch noch hin?
wo bzw. wie muss das abgefangen werden? meine Where Klausel ist nicht brauchbar da passiert garnichts
Dim abfr_MAXIMO As String
abfr_MAXIMO = MAXIMOTextBox.Text.Trim
'Abfrage ob MAXIMO bereits vorhanden
Dim AbfrageName = From Reihe In LagerDB.Lagerliste
Where IsDBNull(Reihe.RowState) <> _
DataRowState.Deleted AndAlso _
(Reihe.MAXIMO.ToLower = abfr_MAXIMO.ToLower)
Select Reihe.Standort, Reihe.Artikelbezeichnung
If AbfrageName.Count > 0 Then
Dim Form_Rueckgabewert As Boolean
Using Dialog_Form As New frm_Dialog()
With Dialog_Form
.ShowInTaskbar = True
'Titel an frm_Dialog übergeben
.lbl_Titel.Text = "MAXIMO ist bereits vergeben!"
'Meldung an frm_Dialog übergeben
Dim sbMeldung As New System.Text.StringBuilder
sbMeldung.AppendFormat("{0} {1} {2}", "Die Maximo-Nummer ", _
abfr_MAXIMO)
sbMeldung.AppendLine()
sbMeldung.AppendFormat("{0} {1} {2}", "ist bereits", _
AbfrageName.Count, " mal vergeben.")
sbMeldung.AppendLine()
sbMeldung.AppendLine()
sbMeldung.Append("Soll die Maximo-Nr trotzdem hinzugefügt" & _
"werden?")
.lbl_Meldung.Text = sbMeldung.ToString
'Alle Wohnorte an frm_Dialog übergeben
.ListBox_Daten.Items.AddRange(AbfrageName.ToArray)
'frm_Dialog anzeigen
.ShowDialog(Me)
End With
'Abfragen, ob Ja oder Nein geklickt wurde
Form_Rueckgabewert = Dialog_Form.return_wert | |
Re: Abfrage Vorhanden X mal | | | Autor: Manfred X | Datum: 06.10.17 15:25 |
| Hallo!
So weit ich Deine Zielsetzung verstanden habe, kann eine einfache
"Aggregate"-Abfrage (SUM) die Anzahl der bereits vorhandenen "abfr_Maximo"-
Werte in der Spalte "Reihe.Maximo" bestimmen. | |
Re: Abfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 06.10.17 17:28 |
| ähm nee Manfred X
evtl. hilft das Bildchen.
es wird eine sogenannte MAXIMO-Nummer zum Artikel gesucht und hier(s. Bild) eingetragen
nun bevor User das speichert soll gefragt werden ob es die Nummer bereits gibt und wo?
er darf sie speichern aber die Entscheidung soll er nach Auflistung der gefundenen treffen.
verstehst du was ich meine? mein Code ist da scheinbar nicht geeignet bzw. sogar Bullen.... | |
Re: Abfrage Vorhanden X mal | | | Autor: Manfred X | Datum: 06.10.17 18:23 |
| Bildchen helfen nicht.
Programmieraufgaben müssen durchdacht werden (Ausgangslage, Daten und
Zielsetzung).
Der User "soll gefragt werden ob es die Nummer bereits gibt und wo?"
Das "ob" erledigt ein Aggregate-Sum.
Aber was ist gemeint mit "WO"?
Welche Informationen benötigt der Benutzer, um entscheiden zu können,
ob er die MAXIMO-Nummer eintragen will oder nicht?
Gibt es eventuell absolute Ausschlußkriterien?
Gibt es Plausibilitätskontrollen für die Zuordnung einer Nummer zu einem
Datensatz?
Sollen die betroffenen Datensätze im Grid markiert werden?
(Sortierung der Sätze nach Maximo-Nummer, Scrollen zum Start der
markierten Datensätze?) | |
Re: Abfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 06.10.17 18:45 |
| schön von dir zu hören
Aber was ist gemeint mit "WO"?
na ja, die Maximo wird einem Standort, Kostenstelle, Artikelbezeichnung, Artikelnummer (wenn die Artikelbezeichnung) eine Artikelnummer hat --> zugewiesen (ein Datensatz)
Welche Informationen benötigt der Benutzer, um entscheiden zu können,
ob er die MAXIMO-Nummer eintragen will oder nicht?
Standort, Kostenstelle, Artikelbezeichnung, Artikelnummer
Gibt es eventuell absolute Ausschlußkriterien?Nein da zum einen Artikelbezeichnung, Artikelnummer nicht immer gleich sind bzw. Unterschiedliche Schreibweise haben
Gibt es Plausibilitätskontrollen für die Zuordnung einer Nummer zu einem
Datensatz?Nein
Sollen die betroffenen Datensätze im Grid markiert werden?OK
(Sortierung der Sätze nach Maximo-Nummer, Scrollen zum Start der
markierten Datensätze?)wenn das geht ja. es arbeiten aber ggf. 2-3 Benutzer mit der DB
Anmerkung: es gibt nur die eine (Tabelle)die Nummer wird in die Tabelle (Feld MAXIMO = String) geschrieben. Der Standort kommt aus der Benutzer Tabelle mit der Anmeldung des Benutzers.
Beitrag wurde zuletzt am 06.10.17 um 18:54:07 editiert. | |
Re: Abfrage Vorhanden X mal | | | Autor: Manfred X | Datum: 06.10.17 18:59 |
| Dann ist doch alles klar.
Zuerst die Aggregate-Sum-Bestimmung durchführen.
Falls größer 0:
- Im Grid den Displayindex der relevanten Spalten so setzen, daß diese
Spalten nebeneinander stehen
- Grid nach Maximo-Nummer Sortieren
- alle Datensätze mit der aktuellen Maximo-Nummer markieren (Zelle/Satz
farblich hinterlegen - Paint-Methoden einsetzen)
- Im Grid zum ersten Datensatz mit der Maximo-Nummer und zu
den relevanten Spalten scrollen
Multiuser-DB:
Bei Verwendung von ADO-Net sind zum Schreiben abgefragte Datensätze
in der Datenbank durch Zeit- und Benutzerstempel zu markieren und deren
Abfrage durch andere Nutzer ist während der Bearbeitung zu unterbinden.
(Anwendung von Methoden zur Sicherstellung der Daten-Parallelität).
https://msdn.microsoft.com/de-de/library/aa0416cz(v=vs.110).aspx | |
Re: Abfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 07.10.17 11:05 |
| Hallo Manfred X,
eine Zwischenfrage warum kann das nicht funktionieren "möchte eine kleine Auswertung" umsetzen.
Dim q = From row As DataRow In LagerDB.Lagerliste
Where row.RowState <> DataRowState.Deleted
Order By row.Field(Of String)("Kostenstelle"), row.Field(Of _
String)("Artikelbezeichnung") _
Group By art = row.Field(Of String)("MAXIMO") Into Count()
Dim df As New DataTable
df.Columns.Add("Kostenstelle") : df.Columns.Add("Artikelbezeichnung") : _
df.Columns.Add("MAXIMO", GetType(String)) : df.Columns.Add("Count", _
GetType(Integer))
For Each el In q
df.Rows.Add(el.art, el.Count)
Next el
Dim bs As New BindingSource With {.DataSource = df}
bs.Sort = "Count DESC"
dgv_Auswertung.DataSource = bs | |
Re: Abfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 07.10.17 12:30 |
| Hallo Manfred X,
neuer Versuch: dgv_Auswertung.Rows.Clear()
Dim Abfrage_Maximo = From Eintrag In LagerDB.Lagerliste
Where Eintrag.RowState <> DataRowState.Deleted
Order By Eintrag.Standort Order By _
Eintrag.Kostenstelle Order By _
Eintrag.IsArtikelbezeichnungNull Order By _
Eintrag.IsArtikelnummerNull
Group By Art = Eintrag.IsMAXIMONull Into _
maximo_Gruppe = Group
Dim ue As LagerlisteRow
Dim Anz_Maximo As Integer 'Anzahl des gefundenen Maximo
Dim Liste_Anzahl As Integer = 0
For Each Artikel_Reihe In Abfrage_Maximo
ue = Artikel_Reihe.maximo_Gruppe.First
If Anz_Maximo = 0 Then 'Maximo wurde bisher nicht gefunden
Anz_Maximo = Artikel_Reihe.maximo_Gruppe.Count
dgv_Auswertung.Rows.Add({ue.Standort, ue.Kostenstelle, _
ue.Artikelbezeichnung, ue.Artikelnummer, ue.MAXIMO, _
Anz_Maximo})
End If
Liste_Anzahl += Anz_Maximo
Next da es aber DBNULL gibt bekomme ich noch ein falsches Ergebnis!
PS die Benutzer Anmeldung mit Stempel habe ich am laufen, der Benutzer bekommt die Änderungen etc. mit "die Tabelle" wird aktualisiert wenn 2-3 Instanzen laufen
| |
Re: Abfrage Vorhanden X mal | | | Autor: Manfred X | Datum: 07.10.17 13:36 |
| Hallo!
Ich verstehe nicht, was Du erreichen möchtest.
Oben dachte ich, Du willst alle Datensätze zu einer vom
Benutzer eingegebenen Nummer in einer gegebenen Tabelle anzeigen.
Was Du jetzt programmierst (aggregierst), ist etwas anderes.
Was z.B. ist die Funktion von "IsMaximoNull".
Poste weder Bildchen noch Codeabschnitte (ohne Angabe von Klassen,
Deklarationen, Datentypen etc. !!) sondern erkläre die Zielsetzung.
Wenn Du Sätze mit DbNull-Eintrag filtern willst, kannst Du die
IsDbNull.Methode einsetzen. | |
Re: Abfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 07.10.17 13:44 |
| Sorry Manfred X,
die Bildchen etc. lasse ich weg.
Oben dachte ich, Du willst alle Datensätze zu einer vom
Benutzer eingegebenen Nummer in einer gegebenen Tabelle anzeigen
Ja will ich nach wie vor doch die korrekte Abfrage glingt mir nicht.
was ich derzeit probiere ist eine Auswertung die ich naxh xls exportieren werde.
hilf mir doch bitte noch einmal zu der ersten Zielsetzung | |
Re: Abfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 08.10.17 10:31 |
| Hallo Manfred X,
ich will immer noch alle Datensätze zu einer vom
Benutzer eingegebenen Nummer in einer gegebenen Tabelle anzeigen lassen.
habe da aber mit der Abfragerei Probleme das Richtig hinzubekommen. Da brauche ich deine Hilfe Bitte
habe meine Auswertung aber erfolgreich fertiggestellt, die mir sagt das es die Maximo hier und dort 2x gibt aber nicht wo die 2 gelandet ist.
der code läuft fehlerfrei
damit habe ich aber noch nicht die Zielsetzung für die Eingabe vom Benutzer
der soll ja eine Liste bekommen für die Entscheidung eintragen Ja, Nein
dgv_Auswertung.Rows.Clear()
Dim Abfrage = From Eintrag In LagerDB.Lagerliste
Where Eintrag.RowState <> DataRowState.Deleted AndAlso _
Eintrag.INMAXIMO = True _
AndAlso Not IsDBNull(Eintrag.Artikelbezeichnung) _
AndAlso Not IsDBNull(Eintrag.Artikelnummer) _
AndAlso Not IsDBNull(Eintrag.MAXIMO)
Order By Eintrag.MAXIMO
Order By Eintrag.Artikelbezeichnung
Order By Eintrag.Artikelnummer
Order By Eintrag.USERNAME
Group By Art = Eintrag.MAXIMO Into UGruppe = Group
Dim Benutzer As String
Dim ue As LagerlisteRow
Dim AnzMaximo, AnzMaximoGesamt As Integer
For Each Reihe In Abfrage
AnzMaximo = Reihe.UGruppe.Count
AnzMaximoGesamt += AnzMaximo
ue = Reihe.UGruppe.First
Dim rowBenutzer = BenutzerDB.Benutzer.First(Function(f) f.ID = _
ue.USERID)
If Not rowBenutzer Is Nothing Then
Benutzer = rowBenutzer.Benutzername
dgv_Auswertung.Rows.Add({ue.Standort, ue.Kostenstelle, _
ue.Artikelbezeichnung, ue.Artikelnummer, ue.MAXIMO, _
ue.USERNAME, Reihe.UGruppe.Count})
End If
Next
lbl_Anzahl_Gesamt.Text = String.Concat("Auswertung: Es wurden " & _
AnzMaximoGesamt & " Maximo Nummern ermittelt!").ToString | |
Re: Abfrage Vorhanden X mal | | | Autor: effeff | Datum: 08.10.17 11:03 |
| Mach einfach eine View auf Deine DataTable und lasse Dir mit Count die Anzahl Datensätze anzeigen...
Die Grundlagen hast Du bereits längst bekommen. Hast Du die wieder vergessen?
EALA FREYA FRESENA | |
Re: Abfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 08.10.17 11:57 |
| Danke effeff,
ich habe es nun so probiert, der code läuft eigentlich Problemlos aber das Ergebnis scheint mir nicht plausibel, desweiteren soll ja mit geliefert werden wo die Nummer bereits vergeben wurde
also Standort, Kostenstelle, Artikelbezeichnung, Artikelnummer
was muss ich da anpassen? damit der Benutzer genau die Info erhält. Ich denke das ich da noch auf dem Holzweg bin
'Anzahl der gefundenen Zeilen
Dim row_found As Integer = _
Aggregate row As DataRow In LagerDB.Lagerliste.AsEnumerable _
Where row(search_columnindex).ToString.StartsWith( _
MAXIMOTextBox.Text) _
Into Count()
If row_found > 0 AndAlso Not searchlist.Contains(MAXIMOTextBox.Text) Then
searchlist.Add(MAXIMOTextBox.Text)
'LagerlisteDataGridView.InvalidateColumn(search_columnindex)
Dim Form_Rueckgabewert As Boolean
Using Dialog_Form As New frm_Dialog()
With Dialog_Form
.ShowInTaskbar = True
'Titel an frm_Dialog übergeben
.lbl_Titel.Text = "MAXIMO ist bereits vergeben!"
'Meldung an frm_Dialog übergeben
Dim sbMeldung As New System.Text.StringBuilder
sbMeldung.AppendFormat("{0} {1}", "Die Maximo-Nummer ", _
MAXIMOTextBox.Text)
sbMeldung.AppendLine()
sbMeldung.AppendFormat("{0} {1} {2}", "ist bereits", _
row_found, " mal vergeben.")
sbMeldung.AppendLine()
sbMeldung.AppendLine()
sbMeldung.Append("Soll die Maximo-Nr trotzdem hinzugefügt" & _
"werden?")
.lbl_Meldung.Text = sbMeldung.ToString
'Alle Wohnorte an frm_Dialog übergeben
.ListBox_Daten.Items.AddRange(searchlist.ToArray)
'frm_Dialog anzeigen
.ShowDialog(Me)
End With
'Abfragen, ob Ja oder Nein geklickt wurde
Form_Rueckgabewert = Dialog_Form.return_wert
If Form_Rueckgabewert = True Then
End If
End Using
Else
End If | |
Re: Abfrage Vorhanden X mal | | | Autor: effeff | Datum: 08.10.17 12:23 |
| Du sollst einfach nur eine DataView erstellen und den Filter auf Dein Maximo setzen - mehr nicht! Die View wird Dir dann schon alles das anzeigen, was Deinem Maximo entspricht - sofern Du die View dann an ein DataGridView bindest...
EALA FREYA FRESENA | |
Re: Abfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 08.10.17 12:39 |
| Du sollst einfach nur eine DataView erstellen
hilf mir mal auf die Sprünge, ich habe evtl. etwas falsches im Hinterkopf und tappe da immer wieder in die Falle
tausend Dank, das Thema beschäftigt mich schon 3 Tage | |
Re: Abfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 08.10.17 13:20 |
| Oh effeff,
'Ermittlung der Jahreszahlen als Liste (LINQ)
Dim dates As List(Of Integer) = _
(From rw As DataRow In dt.AsEnumerable _
Select yr = rw.Field(Of Date)("Date").Year Distinct Order By yr).ToList das meinen wir doch nicht oder?
ich kriege es wieder mal nicht ohne euch hin Sorry
da muss ich mir noch mehr Erfahrungen mit machen. | |
Re: Abfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 09.10.17 09:01 |
| Hallo effeff,
habe es jetzt in eine Funktion gepackt, das passt doch wie fülle ich die Listbox mit
der gefundenen Maximo, Standort, Artikelbezeichnung, Artikelnummer ?
Private Function pruefe_Maximo(ByVal strPruefstring As String) As Boolean
Dim Anz = (From Eintrag In LagerDB.Lagerliste
Where Eintrag.RowState <> DataRowState.Deleted _
AndAlso Eintrag.INMAXIMO = True _
AndAlso Eintrag.MAXIMO.ToLower = strPruefstring.ToLower _
Select Eintrag).Count
If modus_Datensatz_Lagerliste = DatensatzModus.Neu Then
If Anz > 0 Then Return False
ElseIf modus_Datensatz_Lagerliste = DatensatzModus.Bearbeiten Then
If Anz > 1 Then
Dim Form_Rueckgabewert As Boolean
Using Dialog_Form As New frm_Dialog()
With Dialog_Form
.ShowInTaskbar = True
'Titel an frm_Dialog übergeben
.lbl_Titel.Text = "MAXIMO ist bereits vergeben!"
'Meldung an frm_Dialog übergeben
Dim sbMeldung As New System.Text.StringBuilder
sbMeldung.AppendFormat("{0} {1}", "Die Maximo-Nummer ", _
strPruefstring)
sbMeldung.AppendLine()
sbMeldung.AppendFormat("{0} {1} {2}", "ist bereits", _
Anz, " mal vergeben.")
sbMeldung.AppendLine()
sbMeldung.AppendLine()
sbMeldung.Append("Soll die Maximo-Nr trotzdem" & _
"hinzugefügt werden?")
.lbl_Meldung.Text = sbMeldung.ToString
'Alle Maximo mit
' Standort,Kostenstelle,Artikelbezeichnung,Artikelnumme
' r an frm_Dialog übergeben
'.ListBox_Daten.Items.AddRange(???.ToArray)
'frm_Dialog anzeigen
.ShowDialog(Me)
End With
'Abfragen, ob Ja oder Nein geklickt wurde
Form_Rueckgabewert = Dialog_Form.return_wert
If Form_Rueckgabewert = True Then
Else
Return False
End If
End Using
End If
End If
Return True
End Function | |
Re: Abfrage Vorhanden X mal | | | Autor: effeff | Datum: 09.10.17 09:28 |
| Aus DataTable DataView mit Filter erstellen, DataView an DataGridView hängen...
Hatten wir bei den Ersatzteilkisten...
EALA FREYA FRESENA | |
Re: Abfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 09.10.17 10:29 |
| OK effeff,
Kiste haste Recht schau ich rein
meine Lösung sieht so aus (getestet) ist quatsch oder geht ihr da mit?
Private Function pruefe_Maximo(ByVal strPruefstring As String) As Boolean
Dim Anz = From Eintrag In LagerDB.Lagerliste
Where Eintrag.RowState <> DataRowState.Deleted AndAlso _
(Eintrag.INMAXIMO = True) AndAlso (Eintrag.MAXIMO.ToLower = _
strPruefstring.ToLower) _
Select Eintrag.Standort, Eintrag.Kostenstelle, _
Eintrag.Artikelbezeichnung, Eintrag.Artikelnummer
If modus_Datensatz_Lagerliste = DatensatzModus.Neu Then
If Anz.Count > 0 Then
Dim Form_Rueckgabewert As Boolean
Using Dialog_Form As New frm_Dialog()
With Dialog_Form
.ShowInTaskbar = True
'Titel an frm_Dialog übergeben
.lbl_Titel.Text = "MAXIMO ist bereits vergeben!"
'Meldung an frm_Dialog übergeben
Dim sbMeldung As New System.Text.StringBuilder
sbMeldung.AppendFormat("{0} {1}", "Die Maximo-Nummer ", _
strPruefstring)
sbMeldung.AppendLine()
sbMeldung.AppendFormat("{0} {1} {2}", "ist bereits", _
Anz.Count, " mal vergeben.")
sbMeldung.AppendLine()
sbMeldung.AppendLine()
sbMeldung.Append("Soll die Maximo-Nr trotzdem" & _
"hinzugefügt werden?")
.lbl_Meldung.Text = sbMeldung.ToString
'Alle Maximo mit
' Standort,Kostenstelle,Artikelbezeichnung,Artikelnumme
' r an frm_Dialog übergeben
.ListBox_Daten.Items.AddRange(Anz.ToArray)
'frm_Dialog anzeigen
.ShowDialog(Me)
End With
'Abfragen, ob Ja oder Nein geklickt wurde
Form_Rueckgabewert = Dialog_Form.return_wert
If Form_Rueckgabewert = True Then
Else
Return False
End If
End Using
End If
ElseIf modus_Datensatz_Lagerliste = DatensatzModus.Bearbeiten Then
If Anz.Count > 1 Then
Dim Form_Rueckgabewert As Boolean
Using Dialog_Form As New frm_Dialog()
With Dialog_Form
.ShowInTaskbar = True
'Titel an frm_Dialog übergeben
.lbl_Titel.Text = "MAXIMO ist bereits vergeben!"
'Meldung an frm_Dialog übergeben
Dim sbMeldung As New System.Text.StringBuilder
sbMeldung.AppendFormat("{0} {1}", "Die Maximo-Nummer ", _
strPruefstring)
sbMeldung.AppendLine()
sbMeldung.AppendFormat("{0} {1} {2}", "ist bereits", _
Anz.Count, " mal vergeben.")
sbMeldung.AppendLine()
sbMeldung.AppendLine()
sbMeldung.Append("Soll die Maximo-Nr trotzdem" & _
"hinzugefügt werden?")
.lbl_Meldung.Text = sbMeldung.ToString
'Alle Maximo mit
' Standort,Kostenstelle,Artikelbezeichnung,Artikelnumme
' r an frm_Dialog übergeben
.ListBox_Daten.Items.AddRange(Anz.ToArray)
'frm_Dialog anzeigen
.ShowDialog(Me)
End With
'Abfragen, ob Ja oder Nein geklickt wurde
Form_Rueckgabewert = Dialog_Form.return_wert
If Form_Rueckgabewert = True Then
Else
Return False
End If
End Using
End If
End If
Return True
End Function | |
Re: Abfrage Vorhanden X mal | | | Autor: Manfred X | Datum: 09.10.17 12:26 |
| Hallo!
Wieso setzt Du nicht einfach einen Filter in die Bindingsource,
durch die Deine Tabelle an das Grid gebunden ist?
Du mußt dann nur nocht den DisplayIndex der relevanten Spalten
so einrichten, daß die geordnet nebeneinander angeteigt werden.
Falls der Filter 0 Datensätze liefert, hebst Du ihn wieder auf.
Das sind so etwa 3-4 Codezeilen. | |
Re: Abfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 09.10.17 12:32 |
| Hey Manfred X,
statt die Form aufzurufen meinst du einfach den Filter nehmen? also ist der Code geignet?
nur eben den Filter setzen?
Sorry, ich brauche da immer etwas länger als andere. | |
Re: Abfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 11.10.17 12:35 |
| Hallo Manfred X,
Wieso setzt Du nicht einfach einen Filter in die Bindingsource,
durch die Deine Tabelle an das Grid gebunden ist?
habe es auch mit der Variante probiert, funktioniert wie du es sagst. Doch mir gefällt die Variante von mir mit dem JA - NEIN Buttons besser.
noch eine Frage: kann man die doppelten auch Kennzeichnen ohne eigentlich danach zu suchen?
das eben die Spalte MAXIMO automatisch 2, 3 .. gleiche markiert. | |
Re: Abfrage Vorhanden X mal | | | Autor: Manfred X | Datum: 11.10.17 13:11 |
| Hallo!
Um sinnvoll über eine geeignete Benutzerführung im Hinblick auf
die Maximo-Spalte diskutieren zu können, müßte geklärt werden,
was genau diese Information für eine Bedeutung innerhalb der DB
besitzt.
Oben hast Du mitgeteilt, daß die Kenntnis des Inhalts mehrerer
anderer Spalten erforderlich ist, um entscheiden zu können,
ob diese Nummer in bestimmten Fällen mehrfach vergeben werden kann.
Definierbare Regeln gibt es dafür - Deinen Angaben zufolge - aber
nicht.
Eventuell könnte es zweckmäßig sein, eine Tabelle mit dieser
Nummer (eindeutig / unique) zu erstellen und in anderen Tabellen
Fremdschlüssel auf die Sätze dieser Tabelle einzutragen
(Stichwort: DB-Normalisierung).
Die Entscheidung hängt u.a. davon ab, ob "Maximo" lediglich eine
belanglose Zusatzinformation ist oder ob sie für DB-Abfragen der
Benutzer ein relevantes Auswahl-/Bearbeitungs-Kriterium bildet. | |
Re: Abfrage Vorhanden X mal | | | Autor: ERBRU | Datum: 11.10.17 13:32 |
| Danke Manfred X,
da mach ich mir erst mal genauere Gedanken, du hast aber völlig Recht.
Danke! erst mal | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|