Temat: gdzie jest błąd?

Hmmm... Znalazłem błąd w kodzie, który wcześniej skleciłem (kod niżej)

zwracam uwagę na linię: Set rcs1....
kwerenda tam zawarta zwraca mi poprawne wartości, a więc buduje skrót do mailingu dla osób, które w bazie danych mają mailing zaznaczony na "tak"
Ale już w poniższym kodzie, niezależnie od tego, czy wpiszę: (Dane.mailing)=yes, czy (Dane.mailing)=no, access buduje mi plik ze wszystkimi mailami (a nie wybranymi).
Czy mogę prosić o pomoc?

Dim rcs1 As DAO.Recordset
Dim strBCC1 As String

Set rcs1 = CurrentDb.OpenRecordset("SELECT Dane.[e-mail] FROM Dane WHERE (((Dane.semestr)=1) AND ((Dane.mailing)=yes)) OR (((Dane.semestr)=2) AND ((Dane.mailing)=yes));")

With rcs1
Do Until .EOF
strBCC1 = strBCC1 & Left(.Fields(0).Value, InStr(1, .Fields(0).Value, "#", vbDatabaseCompare) - 1) & ";"
.MoveNext
Loop
End With

strBCC1 = Left(strBCC1, Len(strBCC1) - 1)

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

Dim Fileout As Object
Set Fileout = fso.CreateTextFile("D:/Dropbox/Dokumenty/maile1klasa.url", True, True)
Fileout.Write "[{000214A0-0000-0000-C000-000000000046}]" & vbCrLf & "Prop3=19,4" & vbCrLf & "[InternetShortcut]" & vbCrLf & "URL=mailto:?bcc=" & strBCC1 & vbCrLf & "IDList=" & vbCrLf & "HotKey=0" & vbCrLf & "IconFile=C:\Windows\system32\SHELL32.dll" & vbCrLf & "IconIndex=156" & vbCrLf & "[InternetShortcut.A]" & vbCrLf & "[InternetShortcut.W]"
Fileout.CloseTen post został edytowany przez Autora dnia 29.01.21 o godzinie 13:34

Temat: gdzie jest błąd?

Problemem jest sql który masz.
Jaką wartość przyjmuje Dane.mailing? jeżeli to jest pole Prawda/Fałsz to wpisz True lub False.

A tak na marginesie:
Dobrą praktyką dla pola logicznego jest nie stosowanie w Accessie pola Prawda/Fałsz. Substytutem takiego pola jest pole liczbowe, któr przyjmuje tylko 2 możliwości, 0 jako fałsz i 1 lub -1 jako prawda.
Dlaczego?
O ile korzystasz z samego Accesza to może jeszcze nie być wielce problematyczne ale kiedy chciałbyś sie jednak przesiąść z bazą do MS Server a Accessa wykorzystywać jako Front-end, to Sql server takiego pola nie ma i docelowo i tak trzeba przebudować bazę.

Temat: gdzie jest błąd?

Tak, Prawda/Fałsz...

Niestety już tak mam zastosowane, ale dzięki za dobrą radę!

Następna dyskusja:

TABELO, GDZIE JESTEŚ...




Wyślij zaproszenie do