vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Abfrage 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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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....
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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?)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Abfrage Vorhanden X mal 
Autor: effeff
Datum: 08.10.17 12:53

https://msdn.microsoft.com/de-de/library/fdcwwhez(v=vs.110).aspx

Ich könnte schwören, dass bei Deiner Ersatzteilgeschichte die View auch schon mit dabei war... Benutze bitte die Forensuchfunktion!

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel