Merhaba arkadaşlar, Uygulamamda bir butona basarak whatsaap a mesaj olarak aktarıyorum. Fakat, alt alta gösterilen bayii isimleri, ürünler ve fiyatları süzülerek alt alta listeleniyor. Bayii isimleri,ürünler,fiyat şeklinde 3 sütun olarak alt alta listelenen bu kayıtlar whatsaap mesaj bölümünde girintili olarak görünüyor. Listelenen bu kayıtları alanın maxsimum uzunluğuna uygun olarak nasıl düzenleyebilirim.
Teşekkür ederim.
PadRight karşılığı bir fonksiyon denedim, vbTab ifadesini denedim. vbTab Msgbox da çalışıyor fakat whatsaap da çalışmıyor. Ayrıca, vbTab çalışsa bile bayii isimleri farklı uzunlukta olacağından yine girinti oluşacak. PadRight karşılığı fonksiyonda girintiyi engellemedi. PadRight karşılığı fonksiyon eğer Liste Kutusu yada Textbox da fontu "Curier Font" olarak ayarlarsam düzgün gösteriyor.
Private Sub btnGonder_Click()
Dim db As DAO.Database
Dim rs As Recordset
Dim strSQL As String
Dim Adi As String
Dim Tel As String
Dim TC As String
Dim Bayii As String
Dim Urunler As String
Dim Fiyat As Double
Dim Msg As String
strSQL = "SELECT * FROM Tablo2 WHERE [ID_TABLO1]=" & Me.ID
Set db = CurrentDb
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
If (rs.EOF) Then
rs.Close
Set rs = Nothing
Set db = Nothing
Else
Adi = Me.ADISOYADI
TC = Me.TC
Tel = Me.TELEFON
Msg = "Adı Soyadı: " & Adi & vbCrLf
Msg = Msg & "T.C No: " & TC & vbCrLf
Msg = Msg & "Telefon: " & Tel & vbCrLf
Msg = Msg & vbCrLf ' Boş bir satır ekleyebilirsiniz.
' Sütun başlıkları belirli bir uzunluğa sahip olacak şekilde hizalanır.
Msg = Msg & "Bayii Adı" & Space(40 - Len("Bayii Adı")) & "Ürünler" & Space(30 - Len("Ürünler")) & "Fiyatı" & vbCrLf
Msg = Msg & String(60, "_") & vbCrLf ' Alt çizgiyi ekleyebilirsiniz.
While (Not (rs.EOF))
Bayii = rs("BAYII")
Urunler = rs("URUNLER")
Fiyat = rs("FIYAT")
' Sütunlar belirli uzunluklara sahip olacak şekilde hizalanır.
Msg = Msg & Bayii & Space(40 - Len(Bayii)) & Urunler & Space(20 - Len(Urunler)) & Format(Fiyat, "0.00") & vbCrLf
rs.MoveNext
Wend
MsgBox Msg, vbInformation, "Mesaj İçeriği"
rs.Close
Set rs = Nothing
Set db = Nothing
End If
End Sub
boşukları kendin ayarlamaya çalış
umarım işinize yarar
(10/09/2023, 18:35)C*e*l*o*y*c*e yazdı: Private Sub btnGonder_Click()
Dim db As DAO.Database
Dim rs As Recordset
Dim strSQL As String
Dim Adi As String
Dim Tel As String
Dim TC As String
Dim Bayii As String
Dim Urunler As String
Dim Fiyat As Double
Dim Msg As String
strSQL = "SELECT * FROM Tablo2 WHERE [ID_TABLO1]=" & Me.ID
Set db = CurrentDb
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
If (rs.EOF) Then
rs.Close
Set rs = Nothing
Set db = Nothing
Else
Adi = Me.ADISOYADI
TC = Me.TC
Tel = Me.TELEFON
Msg = "Adı Soyadı: " & Adi & vbCrLf
Msg = Msg & "T.C No: " & TC & vbCrLf
Msg = Msg & "Telefon: " & Tel & vbCrLf
Msg = Msg & vbCrLf ' Boş bir satır ekleyebilirsiniz.
' Sütun başlıkları belirli bir uzunluğa sahip olacak şekilde hizalanır.
Msg = Msg & "Bayii Adı" & Space(40 - Len("Bayii Adı")) & "Ürünler" & Space(30 - Len("Ürünler")) & "Fiyatı" & vbCrLf
Msg = Msg & String(60, "_") & vbCrLf ' Alt çizgiyi ekleyebilirsiniz.
While (Not (rs.EOF))
Bayii = rs("BAYII")
Urunler = rs("URUNLER")
Fiyat = rs("FIYAT")
' Sütunlar belirli uzunluklara sahip olacak şekilde hizalanır.
Msg = Msg & Bayii & Space(40 - Len(Bayii)) & Urunler & Space(20 - Len(Urunler)) & Format(Fiyat, "0.00") & vbCrLf
rs.MoveNext
Wend
MsgBox Msg, vbInformation, "Mesaj İçeriği"
rs.Close
Set rs = Nothing
Set db = Nothing
End If
End Sub
boşukları kendin ayarlamaya çalış
umarım işinize yarar
Merhaba,
Cevap yazdığınız için teşekkür ederim. Benim hazırladığıma göre nispeten daha düzenli bir görüntü çıktısı veriyor. Fakat, yine de girinti oluşuyor. Muhtemelen farklı uzunluklarda ki textlerde girinti daha belirgin olacaktır.
Msgbox formatlama özelliğine sahip değildir o yüzden satır sütun gibi net yapılar oluşturamazsınız. Bunun yerine msgbox işlevi görecek bir modal form tasarlayabilirsiniz.
(11/09/2023, 02:53)atoykan yazdı: Msgbox formatlama özelliğine sahip değildir o yüzden satır sütun gibi net yapılar oluşturamazsınız. Bunun yerine msgbox işlevi görecek bir modal form tasarlayabilirsiniz.
Merhaba,
Cevap için teşekkür ederim. Haklısınız "MsgBox" formatlama yapılamıyor. Bunun yerine modal bir form tasarlayıp üzerine tek bir Label ekleyerek mesajı buraya yazdırabilirim. Label fontunu da "Courier New" yaparsam ekran çıktısı düzgün oluyor. Yada normal kontrolleri ekleyip verileri kontrollerde gösterebilirim.
Bu aşamadan sonra form üzerine tıklandığında çalışacak kod bloguna, form görüntüsünü resim olarak kaydet ve resmi whatsaap a gönder komutlarını yazmak şeklinde çözülebilir diye düşünüyorum. Whatsaap a resim gönder komutları var ve çalışıyor sorun ekran görüntüsünü resim formatında sabit bir klasöre yazdırmak. Bu işleme ait kodlara ihtiyacım var.
Teşekkür ederim.
Formu resim olarak değil pdf olarak kaydedebilirsiniz.
PDF olarak kaydetmek için örnek kod olarak şunu kullanabilirsiniz:
Kod:
Dim FileName As String
Dim FilePath As String
FileName = "Dosyanıza vermek istediğiniz ad"
Filepath = "C:\Klasörünüzün Adı\" & FileName & ".pdf"
DoCmd.OutputTo acOutputForm, Me.Name, acFormatPDF, Filepath