Frage : AUFHEBEN Update-mehrfacher Zugangs-Datenbanken/Störung mit ungültigem Datum-Wert

Hallo All

Have ein Problem mit der Aktualisierung eines synchronisierten Zugang DBs, wenn ein Datum von einem Datumpicker in einer VB6 Windows Form-Anwendung ungeprüft ist. Auch dieses wird Prozessarbeiten fein mit aller anderer Feld-Updates, außer wo Daten Empty.

When sind, ein UNGÜLTIGER Wert (das Datum geändert von einigem Datum zu nichts) in die rs verabschiedet. Update tut nichts zum Wert im zweiten DB.

If, das ich versuche, den Wert einzuschließen und ihn zu einer leeren Schnur oder zu anderer zu aktualisieren erhalte ich das folgende error.
ADODB.Field
Description: Gegenwärtiges Recordset stützt nicht die Aktualisierung. Diese kann eine Beschränkung des Versorgers, oder des vorgewählten locktype.


And sein, wenn ich eine Variable erkläre, um sich die adoDB.field Art zu verfangen, erhalte ich
Description: Unzulässiger Gebrauch Null

This ist alter Code von einem vorhergehenden Entwickler und ehrlich zu sein kämpfe ich, um zu verstehen, dass die beste Weise, it.

I zu regeln den Code unten und die addierten Anmerkungen zu den relevanten Bereichen angebracht haben. Das Problem tritt spezifisch mit field.type (7) d.h. „adDate“ auf.

übrigens die Feld Definition in der Zugangs-Tabelle wird auf „erforderliches = nicht“ eingestellt. für dieses EndDate Field.

My ist Darmgefühl ich muss zu irgendeiner Form „Update“ der SQL-Aussage umschalten, oder, die Reihe aus dem External DB sogar würden zu löschen und die Aufzeichnung, wenn eine Änderung made.

I haben verbracht viele Stunden versuchend, die beste Weise ausfindig zu machen, dieses zu beschäftigen, also jede mögliche ist Hilfe gerade wieder einzufügen appreciated.

Cheers FLOG51

sein
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
Private Funktion updateExternalDB (ByVal auditId als Schnur, ByVal externalDB als adoUtil, ByVal tablename als Schnur-, ByValschlüssel als Schnur, ByVal oldKey als Schnur) als Schnur
    Auf Störungs-Zusammenfassung zunächst
    Schwaches errorStr als Schnur
    Schwaches searchKey als Schnur

	Schwaches parentRS als Gegenstand
	'gDBUtility wird als globales erklärt und .getParentRSA Programm holt erfolgreich Feld Daten von der Elternteil-Datenbank-Tabelle zurück
	'Dieses wird durchgeführt, nachdem die Elternteil-Tabelle erfolgreich mit leeren Werten für relevante Daten aktualisiert worden ist.
	parentRS = gDBUtility.getParentRSA einstellen („vorwählen“ u. gDBUtility.getMyTableExportFields u. „von myTable, wo cardnumber =“ u. Schlüssel)

	Wenn nicht parentRS nichts dann ist
	  Wenn parentRS.EOF = falsch dann
	    Wenn errorStr = "" dann
	      Schwaches externalparentRS als Gegenstand					
	      externalparentRS = externalDB.getParentRSA einstellen („* von vorwählen“ u. tablename u. „, wo cardnumber =“ u. der Schlüssel, zutreffend)
	        Wenn externalparentRS nichts dann ist
		      externalparentRS = externalDB.getParentRSA (das tablename, zutreffendes, zutreffend) einstellen
		      externalparentRS.addNew
	        Sonst
		      Wenn externalparentRS.EOF dann
			    externalparentRS.addNew
		      Beenden wenn
	        Beenden wenn
	
	          F als adoDB.field verdunkeln
	          Fieldname als Schnur verdunkeln
	          Für jedes f in parentRS.fields
		        fieldname = f.name				
		        Wenn nicht IsNull (parentRS.fields (fieldname)) Dann
			      Wenn parentRS.fields (fieldname) <> "" dann
			        'Diese folgende Linie ist, wohin der UNGÜLTIGE Datumwert und nie Eingänge an externalparentRS.Update geführt wird 
				     externalparentRS.fields (fieldname) = parentRS.fields (fieldname)
				    Wenn sich irren. <> 0 dann nummerieren
					  'Debug.Print „fiel aus: “ u. err.description
				    Beenden wenn
			      Beenden wenn
		        Beenden wenn
	          Zunächst
	          externalparentRS.Update
	          Wenn sich irren. <> 0 dann nummerieren
		        updateExternalDB = err.description
	          Beenden wenn
	    Sonst
	      updateExternalDB = errorStr
	    Beenden wenn
	  Beenden wenn
	Beenden wenn
	parentRS.Close
	parentRS einstellen = nichts
Funktion beenden

Antwort : AUFHEBEN Update-mehrfacher Zugangs-Datenbanken/Störung mit ungültigem Datum-Wert

               Für jedes f in parentRS.fields 'durch jedes Feld im parentRS recordset wiederholen
                    fieldname = f.name 'zuordnen den Namen des gegenwärtigen Feldes einer Schnurvariable

'ist hier, wo ich verwirrt erhalte
            
                    Wenn nicht IsNull (parentRS.fields (fieldname)) 'Dann nur fortfahren, wenn der Wert des gegenwärtigen Feldes NICHT UNGÜLTIG ist
                        Wenn parentRS.fields (fieldname) <> "" dann 'nur fortfahren, wenn der Wert des gegenwärtigen Feldes NICHT EINE LEERE SCHNUR ist

'wie wir, hier erhalten, wenn ein ungültiger Wert??? geführt?  Die oben genannten conditionals sollten dieses verhindern

                          'Diese folgende Linie ist, wohin der UNGÜLTIGE Datumwert und nie Eingänge an externalRS.Update geführt
                             externalRS.fields (fieldname) = parentRS.fields (fieldname)           ', wenn wir hier einstellten dann den Wert des externalRS recordset Feldes auf den gleichen Wert wie das parentRS Feld erhalten
                            Wenn irren. 0 <> dann nummerieren
                                'Debug.Print „ausfiel el: “ u. err.description
                            Beenden wenn
                        Beenden wenn
                    Beenden wenn
                Zunächst
                externalRS.Update 'Update das recordset
Weitere Lösungen  
 
programming4us programming4us