שאלה מה זה יוניק

UNIQUE?

אני מניח שאתה חדש לתחום ה-DB. אני מקווה שאתה מכיר מושגים כמו טבלה, רשומה ושדה. אם כן, אז זה ההסבר: בוא נניח לרגע שאנחנו לוקחים סדרה של מספרים. אם דואגים שאף מספר לא יופיע פעמיים בסדרה, אז הוא מוגדר UNIQUE, או "יחיד". ב-DB, "הסדרה" היא טבלה (בד"כ). וכמו כן, ברוב המקרים, אין שתי רשומות זהות באותה הטבלה. זאת נעשה ע"י קביעת שדה לכל רשומה, שהוא ת.ז. של הרשומה. כמובן שלכל רשומה יש ערך אחר בשדה הזה. זהו "מפתח הרשומה" כידוע. והוא דוגמה טובה לשדה UNIQUE, או "חד-חד ערכי" במושגים של DB (המקור של המושג שאול ממתמטיקה, אבל לא שאלת, אז אני לא נכנס לשם...)
 

inkydinky

New member
אני כן שואל...

מה המקור של חד-חד-ערכי במתמטיקה? איך זה מתקשר? תודה, IDD
 

InnerKid

New member
חד-חד-ערכי

המונח חד-חד-ערכי (חח"ע) במתמטיקה מתייחס למושג הפונקציה. באופן כללי, פונקציה היא אופן של התאמה בין שתי קבוצות איברים (לצורך העניין נניח שהאיברים הם מספרים) - האחת נקראת התחום והשניה הטווח. אופן ההתאמה של פונקציה הוא כזה המתאים כל מספר הנמצא בתחום לאיבר מסויים הנמצא בטווח בצורה שלא יתכן שמספר אחד בתחום יותאם לשני איברים שונים בטווח. מצב שכזה נקרא חד ערכי, וכך כל פונקציה מתמטית היא חד ערכית. ישנן פונ´ מתמטיות שהן חד-חד-ערכיות והכוונה היא שכל איבר בתחום מותאם לאיבר שונה בטווח, כלומר לא יתכן שני איברים שונים בתחום שיתנו את אותו הערך בטווח. לדוגמה - הפונקציה y=x+3 שהתחום והטווח שלה היא קב´ המספרים הטבעיים, היא פונקציה חד חד ערכית, מכיוון שלכל X שאני אקח בתחום, אני אקבל ערך אחר בטווח - לא קיימים שני ערכי X שונים שעבורם אני אקבל Y זהה - התאמה כזו היא התאמה חח"ע. דוגמה לפונקציה שהיא לא חח"ע - y=X^2 (כלומר X בריבוע), זאת מכיוון שקיימים שני ערכי X שונים (למשל 3 ו- 3-) שעבורם אני אקבל את אותו Y (במקרה זה 9). איך זה קשור לבסיסי נתונים? בטבלה שאתה מציין בה שדה מסויים כשדה unique, כלומר יחודי, אומר שלא יתכן שערכים בשדה זה יופיעו יותר מפעם אחת, מכיוון שעבור כל ערך כזה אני אקבל רשומה אחרת בטבלה. שדה ייחודי הוא למשל מס´ רץ או מס´ תעודת זהות וכו´ - יתרון של כזה הוא שהוא מאפשר לך לעשות חיפושים על הטבלה לפי השדה הזה ולהחזיר לך בכל פעם רשומה אחת בדיוק מבוקשת, לפי המפתח הייחודי (במידה והוא קיים כמובן). אני מקווה שההסבר שלי היה ברור מספיק ולא מסורבל מדי
מאור.
 

moshe f

New member
תודה רבה הכן אני חדש בתחום ו-

ההסבר פשוט ומובן תודה שאלה נוספת בניתי ישום לסוכן ביטוח (אני הסוכן) לשאלה: אני רוצה לאחר הכנסת מס´ פוליסה ןכו´ להוציא מכתב שיהיה סטנדרטי ויהיה נילוה לפוליסה השמות ופרטים נוספים של המבוטח יועברו מהתיק למכתב אבל אם בררת מחדל של הדפסה (כן לא) אני מקווה שהסברתי אתי עצמי ושוב תודה
 

InnerKid

New member
אני לא בטוח שהבנתי אבל אני אנסה..

אם הבנתי נכון, אז אתה רוצה להפיק מכתב אחרי שהעלית פוליסה מסויימת.. אני לא יודע אם יש קישור לוורד נניח ואם כן אז באיזו צורה זה עובד, אבל אתה יכול ליצור למשל דו"ח ולבנות אותו בצורה של מכתב, כאשר בראש המכתב יהיו הפרטים בשדות textbox עם קישורים מתאימים, כך שיכילו את הפרטים הספציפיים עבור בעל הפוליסה, ושאר הדו"ח יהיה טקסט חופשי שהוא יהווה את גוף המכתב. דו"ח כזה אפשר כמובן להדפיס.
מאור.
 

moshe f

New member
נכון יש אפשרות

לפרט יותר (לאהבלים כמוני) צעדים ואם אפשר דגומא איך אני בונה דוח בצורה של מכתב תודה
 
בלי לפגוע...... ../images/Emo52.gif

אני חושב, שאם אתה מתחיל אז באמת עדיף לך להשתמש בדו"ח ולא בקישור לוורד. בעיקר אם פורמת המכתב הוא זהה. עכשיו איך זה מתבצע? כרגיל יש משפר אפשרויות. אפשרות ראשונה: אתה עובר לדוחות (Report) ופותח דו"ח או דרך האשף או בתצורה של עיצוב. מקור הדו"ח יהיה הלקוחות שלך עם מספר הפוליסה. את הטקסט אתה כותב בתוית, או ב- TextBox, ומצרף את השדות הרלונטיים מהטבלה המקושרת.אפשרות זאת תהיה טובה אם במהלך המסמך אתה צריך לשלב נתונים שמשתנים מלקוח ללקוח אפשרות שניה: אפשרות זאת קצת יותר מסובכת, אבל היא מעניקה לך גמישות כל שהיא. מתחילים בבנית טבלת מכתבים, שמקבלת שלושה שדות שדה מפתח, ושדה מסוג מזכר (למרות המשקל הרב), שדה שלישי הוא כותרת המכתב. שלב שני, לא חובה אבל מומלץ, בנית טופס מכתבים, שזהו הממשק שלך לטבלא. כלומר, כאן ימוספר המכתב, תנתן כותרת למכתב ויכתב טקסט המכתב. שלב שלישי, הוא בנית הדו"ח. מקור הדו"ח בנוי משאילתה, שתכיל את טבלת הטקסט (עם קריטריון של מס הטקסט), וכל הנתונים הרלונטיים מטבלת הלקוחות (עם קריטריון של מספר הלקוח). את העיצוב, אני משאיר לך. השלב הרביעי, הוא בניית מחולל הדוחות, זהו טופס, המורכב מקומבו בוקס, שמקורו טבלת המכתבים, שדה המספר ושדה הכותרת. ופרטי הלקוח - אותם אתה יכול למשוך בעת הפתיחה מטופס לקוחות או לבחור לקוחות על ידי שדה טקסט לא מאוגד שיקבל את שדה המפתח (מספר לקוח, או מספר פוליסה) ושימוש בשורת הקוד GOTO RECORD. צריך לזכור לחבר בקוד בין טופס המחולל לדוח כיון שנתוני הקריטריון של המכתב נקבעים במחולל הדוחות. מקווה שעזרתי
 
ודאי

אבל זה מחייב הגדרה של Word בReferences עוד לפני שמשתמשים בקוד כל אפשרויות השימוש בקוד מופיעות כאן:
Sub AssistantWorkingOn() ReferenceOffice AssistantOn End Sub Sub AssistantOn() If Assistant.Visible = False Then Assistant.Visible = True Assistant.Animation = msoAnimationWorkingAtSomething End Sub Sub AssistantIdleOn() Assistant.Visible = True Assistant.Animation = msoAnimationIdle End Sub Sub ReferenceOffice() Dim ref1 As Reference Dim blnOffice9In As Boolean, mso9Library As String ´Enumerate members of References collection ´to find if Office libary is already referenced blnOffice9In = False For Each ref1 In References If ref1.Name = "Office" Then blnOffice9In = True End If Next ref1 ´If Office library reference is missing reference it If blnOffice9In = False Then mso9Library = _ "C:\program files\Microsoft Office\Office\mso9.dll" Application.References.AddFromFile mso9Library End If End Sub Sub fromAccessToWordTable() Dim myWDApp As Word.Application Dim myRange As Word.Range, myTable As Word.Table Dim acell As Word.Cell, emailCol As Integer Dim rst1 As New Recordset, irow As Integer ´Open the table with the new contacts. With rst1 .ActiveConnection = CurrentProject.Connection .Open "oe4pab", , adOpenKeyset, adLockOptimistic, adCmdTable End With ´Create a Word application instance and turn on ´the Assistant´s working animation. AssistantWorkingOn Set myWDApp = CreateObject("Word.Application") ´Add a document to the application and a table to the document. ´Specify rows to equal one more than email address ´table in Access. myWDApp.Documents.Add Set myRange = myWDApp.ActiveDocument.Range(0, 0) myWDApp.ActiveDocument.Tables.Add Range:=myRange, _ NumRows:=rst1.RecordCount + 1, NumColumns:=3 ´Insert column headings for table. With myWDApp.ActiveDocument.Tables(1).Rows(1) .Cells(1).Range.Text = rst1.Fields(0).Name .Cells(2).Range.Text = rst1.Fields(1).Name .Cells(3).Range.Text = rst1.Fields(2).Name End With ´Insert first name, last name, and email from Access table. ´Insert contact info in the second through the last row. For irow = 2 To myWDApp.ActiveDocument.Tables(1).Rows.Count emailCol = 0 For Each acell In _ myWDApp.ActiveDocument.Tables(1).Rows(irow).Cells acell.Range.Text = IIf(IsNull(rst1.Fields(emailCol)), _ "", rst1.Fields(emailCol)) emailCol = emailCol + 1 Next acell rst1.MoveNext Next irow ´Format table to fit content, turn on idle animation, and ´make Word visible so user can see table in Word. myWDApp.ActiveDocument.Tables(1).AutoFitBehavior wdAutoFitContent AssistantIdleOn myWDApp.Visible = True End Sub Sub runMLabels() Dim myWDApp As Word.Application ´Open connection to Word and make Word visible. Set myWDApp = CreateObject("Word.Application") myWDApp.Application.Visible = True ´Run mailing label procedure. myWDApp.Application.Run "printPreviewLabels" End Sub Sub runFormLetters() Dim myWDApp As Word.Application ´Open connection to Word and make Word visible. Set myWDApp = CreateObject("Word.Application") myWDApp.Application.Visible = True ´Run form letter procedure. myWDApp.Application.Run "printPreviewLetters" End Sub​
 
למעלה