Thread View: pl.comp.bazy-danych.msaccess
2 messages
2 total messages
Started by Marek Olkowski
Tue, 03 Apr 2018 20:26
err 91 co jest skopane
Author: Marek Olkowski
Date: Tue, 03 Apr 2018 20:26
Date: Tue, 03 Apr 2018 20:26
93 lines
3802 bytes
3802 bytes
Witam
czy ktoś może mnie nakierować.
przy 6 edycji wywala 91 albo 3003
funkcja umieszczona w module
wywoływana w formularzu jak poniżej
If mRecordset.LanEditFrm(Me, "KartotekaTowaru", "Pr_Id", Me.lstKartoteka.Column(0), DB_LONG) = True Then end if
........... moduł..........
Public Function LanEditFrm(frm As Form, domain, keyName As String, whereValue As String, KeyNameType As String, _
Optional keyName2 As String, Optional whereValue2 As String, Optional KeyName2Type As String, _
Optional OrderBy As String) As Boolean
Dim rs As Recordset
Dim db As Database
Dim ctl As Control
Dim vartemp As Variant
Dim strSQL As String
strSQL = mSQLString.SQLString(domain, keyName, whereValue, KeyNameType, _
keyName2, whereValue2, KeyName2Type, _
OrderBy)
'sprawdzi czy istnieją rekordy
On Error GoTo ErrorHandler
'Otwarcie połączenia utworzenie rs
Set db = CurrentDb()
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
If rs.RecordCount = 0 Then
' jeśli brak rekordów
MsgBox "Brak danych !!", vbInformation, "komunikat "
Else
'Edytowanie rekordu
rs.Edit
'Iteracja poprzez poszczególne pola formularza, których nazwy
'odpowiadają
' nazwom elementów obiektu Recordset
For Each ctl In frm.Controls
'pola nie ma w formularzu - błąd
On Error Resume Next
Err = 0
ctl.Value = rs.Fields(ctl.Name)
If Err = 0 Then
On Error GoTo ErrorHandler
End If
Next
End If
' posprzataj
rs.Close
db.Close
'Set rs = Nothing
'Set db = Nothing
LanEditFrm = True
GoTo Done
ErrorHandler:
If Err = 3003 Then ' zbyt wiele zagnieżdzonych tranzakcji
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End If
MsgBox "Error :" & " mRecordset.EditFrm" & " " & domain & " " & _
Err.Number & vbCrLf & vbCrLf & Err.Description, vbInformation, LoadString(BazaNazwa)
Done:
End Function
Pozdrawiam
Marek
Re: err 91 co jest skopane
Author: Marek Olkowski
Date: Sun, 08 Apr 2018 18:30
Date: Sun, 08 Apr 2018 18:30
67 lines
3308 bytes
3308 bytes
Public Function LanEditFrm(frm As Form, domain, keyName As String, whereValue As String, KeyNameType As String, _
Optional keyName2 As String, Optional whereValue2 As String, Optional KeyName2Type As String, _
Optional OrderBy As String) As Boolean
' edycja jednego recordu wg strSQL
Dim rs As DAO.Recordset
Dim ctl As Control
Dim vartemp As Variant
Dim StrSQL As String
StrSQL = mSQLString.SQLString(domain, keyName, whereValue, KeyNameType, _
keyName2, whereValue2, KeyName2Type, _
OrderBy)
On Error GoTo ErrorHandler
'Otwarcie połączenia utworzenie rs
Set rs = CurrentDb.OpenRecordset(StrSQL, dbOpenDynaset)
'sprawdzi czy istnieją rekordy
If rs.RecordCount = 1 Then
'Iteracja poprzez poszczególne pola formularza, których nazwy odpowiadają
' nazwom elementów obiektu Recordset
For Each ctl In frm.Controls
'pola nie ma w formularzu - błąd
On Error Resume Next
Err = 0
ctl.Value = rs.Fields(ctl.Name)
If Err = 0 Then
On Error GoTo ErrorHandler
End If
Next
Else
' jeśli brak rekordów lub więcej jak jeden wyswietl komunikat
MsgBoxID EditFalse, vbInformation, LoadString(BazaNazwa)
End If
Exit Function
ErrorHandler:
MsgBox "Error :" & " mRecordset.EditFrm" & " " & _
Err.Number & vbCrLf & vbCrLf & Err.Description, vbInformation, LoadString(BazaNazwa)
End Function
to pracuje
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads